본문 바로가기
JAVA

인스턴스 메서드와 정적 메서드

by 영카이브 2024. 2. 4.

인스턴스 메서드란?

  • 객체가 생성(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