Study/Java
Java. static 메서드와 인스턴스 메서드
염몽이
2022. 4. 2. 00:38
인스턴트 메서드
- 인스턴스 생성후, '참조변수.메서드이름()' 으로 호출
- 인스턴스 멤버(iv, im)와 관련된 작업을 하는 메서드
- 메서드 내에서 인스턴스 변수(iv) 사용가능
static 메서드 (클래스 메서드)
- 객체 생성없이 '클래스이름.메서드이름()' 으로 호출
- 인스턴스 멤버(iv, im)와 관련없는 작업을 하는 메서드
- 메서드 내에서 인스턴스 변수(iv) 사용불가
static 메서드와 인스턴스 메서드의 차이점은 인스턴스 변수(iv)를 사용하냐 안하냐의 차이다.
사용하면 인스턴스 메서드이고, 사용하지 않는다면 static 메서드이다.
class MyMath {
long a, b;
long add() { //인스턴트 메서드
return a + b; //a,b는 인스턴스 변수(iv) 이다.
}
static long add1(long a, long b) { //static 메서드 (클래스 메서드)
return a + b; //a,b는 지역변수(lv) 이다.
}
}
static 메서드는 단순히 iv를 사용하지 않을 때 붙이면 된다고 생각하면 된다.
인스턴스 메서드는 iv를 사용한다고 생각하면 된다.
public class Main {
public static void main(String[] args) {
MyMath mm = new MyMath(); //객체 생성
mm.a = 100;
mm.b = 200;
mm.add(); //인스턴스 메서드
MyMath.add1(200, 300); //static 메서드
}
}
인스턴스 메서드는 먼저 인스턴스를 만들고 메서드를 호출해야한다.
반면, static 메서드 (클래스 메서드)는 클래스이름.메서드이름() 으로 호출하면 된다.
메서드 간의 호출과 참조
static 메서드는 인스턴스 변수 (iv)를 사용할 수 없다.
메서드도 마찬가지로 static 메서드안에서도 인스턴스 메서드를 사용할 수 없다.
공부: https://www.youtube.com/watch?v=Fl4TzjPKAMU&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=65