Java

[Java] static 메서드와 인스턴스 메서드

dalooong 2023. 5. 30. 14:43

1. 인스턴스 메서드란?

: 메서드 앞에 static이 붙지 않은 것

  • 인스턴스 생성 후, **‘참조변수.메서드이름()**’으로 호출
  • 인스턴스 멤버 (iv, iv)와 관련된 작업을 하는 메서드
  • 메서드 내에서 인스턴스 변수(iv) 사용가능
  • 매개변수 없음
  • iv : 인스턴스 변수 lv: 지역변수 cv:클래스 변수
long a,b; //인스턴스 메서드 
long add(){
	return a+b;
}

static long add (long a. long b){ //클래스 메서드=static 메서드  + 지역변수 
	return a+b;
}

2. static 메서드란?

: 메서드 앞에 static이 붙은 것

  • 객체 생성 없이 **‘클래스이름.메서드이름()’**으로 호출
  • 인스턴스 (iv, im)와 관련없는 작업을 하는 메서드
  • 메서드 내에서 인스턴스 변수(iv) 사용 불가
  • 매개변수 있음
  • 클래스 메서드 = 객체 생성 없이 호출 가능함
  • 인스턴스 메서드 = 객체 생성 후 호출 해야함

인스턴스 메서드와 static 메서드를 구분 짓는 것은 인스턴스 변수iv의 사용 여부이다.

객체란? 변수들의 묶음이다. = iv들

     static을 언제 붙여야 할까?

  • 속성(멤버변수) 중에서 공통 속성에 static을 붙인다.
  • 인스턴스 멤버iv, im을 사용하지 않는 메서드에 static을 붙인다.
  • iv를 사용하지 않을 때 static을 붙이면 된다.
  • static 메서드는 인스턴스 변수iv 사용 불가
  • static 메서드는 인스턴스 메서드 im 사용 불가
  • 클래스 메서드 cv는 언제나 사용 가능

 

출처 : 자바의정석 - 기초편