가자미의 개발이야기
자바의 오버로딩 본문
자바가 메소드를 참조할 때는 두가지를 고려한다.
첫째 메소드의 이름
둘째 매소드의 매개변수 정보 이다.
달리 생각하면 자바는 메소드 이름이 다르거나 혹은 같은 이름의 메소드라도 매개변수 정보가 다르면 서로 다른 메소드로 정의하게 되는 셈이다.
이런 이름이 같아도 매개변수가 달라 여러개를 정의하는 방식을 메소드 오버로딩이라고 한다.
이때 반환형은 상관없다는걸 알아두자!
특히 모호한 오버로딩은 피하자!
예를 들어 메소드명(int a, double b); 메소드명(int a, int b); 가 정의되었을 때
메소드명(3, 'k');는 어떻게 될까? 앞선 두 메소드명 모두 가능한 모호한 오버로딩이다.(물론 이 경우에선 형변환에 의해 두번째 메소드가 실행된다.)
그리고 이런 오버로딩은 메소드만 해당하는게 아니라 생성자도 해당한다!!!
특히 생성자 오버로딩으로 인스턴스의 유형을 분류해서 만들 수 있다. (여권번호 있는 사람과 없는 사람)
키워드 this를 통해서 오버로딩을 더 활용할 수 있다.(this는 자신이 속한 인스턴스를 가르킨다. 매개변수를 변화해 오버로딩된 메소드를 찾아갈 수 있다.)
이 this.변수로 접근하면 무조건 인스턴스 변수를 뜻하게 된다.
'Java > 자바 기본 문법' 카테고리의 다른 글
자바 콘솔 입출력 (0) | 2021.01.07 |
---|---|
자바 String 클래스와 StringBuilder 클래스 (0) | 2021.01.06 |
자바에서 System.out.println 의 의미는 무엇일까? (0) | 2021.01.05 |
자바의 스태틱이란 뭘까? (0) | 2021.01.05 |
자바의 캡슐화란 무엇일까? (0) | 2021.01.05 |