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는 언제나 사용 가능
출처 : 자바의정석 - 기초편
'Java' 카테고리의 다른 글
[Java] 생성자 this(), 참조변수 this (0) | 2023.05.31 |
---|---|
[Java] 오버로딩, 오버라이딩 (0) | 2023.05.30 |
[Java] 예외처리 (0) | 2023.05.30 |
[Java] 컬렉션과 제네릭 (0) | 2023.05.30 |
[Java] 추상클래스와 인터페이스 (0) | 2023.05.30 |