인스턴스 메서드란?
- 객체가 생성(new)되어야지만 사용이 가능하다.
- 인스턴스 메서드는 호출될 때마다 해당 메서드를 호출한 객체의 상태에 따라 동작이 달라진다.
인스턴스 메서드를 사용하는 상황
- 객체의 특정 상태나 속성에 따라 동작이 달라지는 경우
- 객체간의 상호작용이 필요한 경우
- 다형성을 이용해 다양한 동작구현이 필요한 경우
예시
public class Program {
public static void main(String[] args) {
Calculator calc = new Calculator(3,4);
calc.add();
}
}
public class Calculator {
// 멤버변수를 객체화
private int x;
private int y;
// 객체화한 x, y를 가지고 넘겨받은 값을 넣어줌
public Calculator(int x, int y) {
this.x = x;
this.y = y;
}
// 이미 값 넘겨받은 x, y로 덧셈
public int add() {
return x+y;
}
}
정적 메서드란?
- 특정한 객체에 속하지 않고 클래스 자체에 속하는 메서드다.
- 클래스가 로딩될 때 메모리에 할당되며, 객체 생성 여부와 상관없이 클래스 명을 통해 직접 호출이 가능하다.
- 주로 유틸리티 메서드나 공통적인 기능 제공 시 사용하는 메서드다.
정적 메서드를 사용하는 상황
- 객체의 특정 상태나 속성에 상관없이 일반적인 동작을 할 경우
- 유틸리티 메서드, Helper 메서드 구현을 할 경우
- 인스턴스 생성없이 독립적인 동작을 구현할 경우
예시
public class Program {
public static void main(String[] args) {
int result = 0 ;
// 덧셈을 할때마다 값을 넘겨줌
result = Calculator.add(3,4);
}
}
public class Calculator {
// 넘겨받은 지역변수 x, y로 덧셈
public static int add(int x, int y) {
return x+y;
}
}
'JAVA' 카테고리의 다른 글
예외처리 (0) | 2024.01.31 |
---|---|
인터페이스 (0) | 2024.01.28 |
다형성과 형변환 (0) | 2024.01.27 |
탬플릿 메서드 패턴 & 팩토리 메서드패턴 (0) | 2024.01.24 |
메서드 동적 바인딩 (0) | 2024.01.19 |