Java/JAVA의 정석_객체지향
Instance 메서드 VS Static 메서드
Jenny_yoon
2022. 10. 26. 13:09
728x90
반응형
* Instance 메서드
- 인스턴스 생성 후 '참조변수.메서드이름()'으로 호출
- 인스턴스 멤버(iv,im)와 관련된 작업을 하는 메서드
- 메서드 내에서 인스턴스 변수(iv) 사용가능
* Static 메서드
- 객체생성 없이 '클래스이름.메서드()'으로 호출
- 인스턴스 멤버(iv, im)와 관련없는 작업을 하는 메서드
- 메서드 내에서 인스턴스 변수(iv) 사용불가
- 속성(멤버 변수) 중에서 공통 속성에 static을 붙인다.
static int width = 100;
- 인스턴스 멤버(iv, im)을 사용하지 않는 메서드에 static을 붙인다.
long add() { return a+b; } //a,b는 인스턴스변수 //add()는 인스턴스메서드
static long add(long a, long b) { return a+b; } //a,b는 지역변수 //add는(~) static 메서드
- static 메서드는 인스턴스 변수(iv)를 사용할 수 없다.
class TestClass2{
int iv; //인스턴스변수
static int cv; //클래스변수
void instanceMethod() { //인스턴스 메서드
system.out.println(iv); //인스턴스변수 사용가능
system.out.println(cv); //클래수변수 사용가능
}
static void staticMethod() { //static 메서드
system.out.println(iv); //에러!!! 인스턴스변수 사용불가x
system.out.println(cv); //클래스변수 사용가능
}
}
728x90
반응형