static 메서드와 instance메서드의 차이를 확실히 알고, 언제 사용하는 지 알아야 한다.
아래 코드를 통해 살펴보자.
class MyMath{
long a, b; // 인스턴스 변수
// 인스턴스 메서드: 인스턴스 변수 사용
long add() {
return a+b;
}
// static 메서드 : 인스턴스 변수 사용x
static long add(long a, long b) {
return a+b;
}
}
public class methodEx {
public static void main(String[] args) {
// static 메서드 호출: 클래스 이름 사용해서 호출
System.out.println("static 메서드 사용 : " + MyMath.add(10, 20));
// 인스턴스 메서드 호출 : 객체 생성 후, 참조변수 사용해서 호출
MyMath mm = new MyMath();
mm.a = 10;
mm.b = 20;
System.out.println("인스턴스 메서드 사용 : " + mm.add());
}
}
- static 메서드
- static 메서드는 클래스 이름을 통해서 접근하여 사용한다.
- 접근하는데 있어 객체가 필요 없다.
- 인스턴스 변수를 사용하지 않는다.
- 인스턴스 메서드
- 인스턴스를 생성하고, 참조변수를 통해 접근한다.
- 인스턴스 변수를 사용해야 한다.
- static 메서드와 인스턴스 메서드를 사용하는 가장 큰 차이는 인스턴스 변수를 사용하느냐 마느냐의 차이이다.
- static 메서드의 경우 인스턴스 변수를 사용하지 않기 때문에, 객체를 생성할 필요가 없다.
'JAVA' 카테고리의 다른 글
12. this()와 this (0) | 2022.09.24 |
---|---|
12. 생성자, 기본 생성자 (0) | 2022.09.24 |
10. 참조형 반환타입 (0) | 2022.09.20 |
9. 기본형&참조형 매개변수 (0) | 2022.09.20 |
8. 호출스택 (0) | 2022.09.18 |