java

17. 메소드-3 메소드의 종류

dalc3154 2025. 2. 25. 16:31

메소드의 종류: (인스턴스) 메소드, 정적(static) 메소드

 

클래스 '필드': (인스턴스) 필드, 정적(static) 필드

인스턴스 메소드: 객체(인스턴스)를 생성한 후에 호출할 수 있는 메소드

 

정적 메소드: 객체 생성 없이 호출 가능한 메소드

 

정적 메소드란?
static 키워드를 사용하여 정의된 메소드, 클래스명으로 직접 호출 가능
static 반환타입 메소드명 () {}
클래스명.메소드명();

정적 메소드 특징
인스턴스 필드(변수)에 의존하지 않는다
클래스 수준에 공유되는 데이터를 다룰 때 적합

정적 메소드 사용 권장 사항
공통 데이터 사용: 모든 인스턴스에 공유되는 값(정적 필드)을 다룰 때
독립적인 사용: 필드값과 관계없이 지역변수만으로 작업 처리 시

class Operator {
	// (인스턴스) 필드 (변수)
	int a, b;
	// (인스턴스) 메소드
	int add() {
		// 필드값을 지정하고자 하는 경우 this 키워드 사용
		// 필드값과 지역변수의 이름이 동일할때
		//int result = this.a - this.b;
		// 인스턴스 변수 활용: 매개변수가 필요하지 않은 경우도 존재
		return a + b;
		
	}
	
	int multiply(int a, int b) {
		int result = this.a - this.b;// 필드값에 접근
		return result;
	}
	// 정적 메소드
	static int subtract(int a, int b) {
		// 필드값과 지역변수의 값이 동일한 경우
		// 해당 지역 (내부의 영역)의 변수명이 우선시된다
		return a - b;
	}
}

public class D_Method {
	public static void main(String[] args) {
		System.out.println("인스턴스 메소드");
		Operator operator = new Operator();
		
		operator.a = 10;
		operator.b = 20;
		
		System.out.println(operator.add());// 30
		
		System.out.println("정적 메소드");
		int result = operator.subtract(10, 20);// 클래스명.메소드명();
		System.out.println(result);// -10
	}
}

'java' 카테고리의 다른 글

17. 메소드-4 오버로딩  (0) 2025.02.25
실습) 야구선수 평가하기  (0) 2025.02.25
실습) 사칙연산 클래스 만들기  (0) 2025.02.25
17. 메소드-2, 함수와 메소드  (0) 2025.02.25
17. 메소드-1  (0) 2025.02.25