메서드
인스턴스 메서드
객체를 통해 호출되는 메서드
객체의 상태(필드 값)를 활용하거나 수정할 수 있음
객체를 생성해야 호출 가능
this 키워드로 자기 자신 객체 참조 가능
객체마다 상태가 다를 수 있어서, 각 객체에서 독립적으로 동작
static이 아니므로 클래스 이름으로 호출 불가
class Calculator{
int add (int a, int b){return a + b;}
}
Calculator c =new Calculator();
int result = c.add(3, 5); // 객체로 호출
클래스 메서드(static 메서드)
class MathUtil{
static int square (int x) {return x * x;}
}
int result = MathUtil.square(4); //클래스 이름으로 호출
void 메서드
void printHello() {
System.out.println("Hello");
}
오버로딩
int add(int a, int b) {return a + b;}
double add(double a, double b){return a + b;}
add(2,3); //int 버전 호출
add(2.0, 3.0); //double 버전 호출
오버라이딩
class Animal {
void sound() {
System.out.println("동물 소리");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("멍멍");
}
}
Animal a = new Dog();
a.sound(); // 결과: "멍멍"