메서드의 장점
- 코드의 중복을 줄일 수 있다.
- 코드의 관리가 쉽다.
- 코드를 재사용할 수 있다.
- 코드가 간결해서 이해하기 쉬워진다.
💡 iv(인스턴스 변수)의 사용여부로 구분
clas이름.메서드이름();
속성 중에 공통 속성일 경우 👉 클래스 변수
인스턴스 멤버(인스턴스 변수, 인스턴스 메서드)를 사용하지 않는 메서드
👉 메서드에 붙은 static은 모든 객체에 공통적인 메서드라서가 아닌, iv를 사용하지 않을 때 붙임
- static 메서드(클래스 메서드)는 객체 생성이 필요하지 않음
( ∵ iv를 사용하지 않아서)- iv를 사용하지 않는 메서드면 static 메서드(클래스 메서드)로 정의
( 인스턴스 메서드는 이와 반대 )
하나의 클래스에 같은 이름의 메서드를 여러개 정의 하는것
👉 같은 이름 = 하는 작업이 같다.
👉 1, 2번 중 1개라도 해당하지 않으면 중복 정의 에러가 발생한다.
long add(int a, long b) { }
int add(long a, long b) { }
위처럼 메서드 작성시, 호출할 때 매개변수의 타입 주의!💡
add(2, 3);
어떤 메서드 호출인지 모호해서 에러 발생
add(2, 3L);
위처럼 타입을 구분해서 작성해주야 함!
상속받은 조상 클래스의 메서드를 자신에 맞게 변경하는 것
(선언부X, 구현부{ }만 변경 가능)
class MyPoint3 {
int x;
int y;
String getLocation() {
return "x:"+x+",y:"+y;
}
}
class MyPoint3D extends MyPoint3 {
int z;
String getLocation() {
return "x:"+x+",y:"+y+",z:"+z; //오버라이딩
}
}
💡 오버로딩 vs 오버라이딩
오버로딩은 새로 만드는 것, 오버라이딩은 변경