1. 클래스 메서드
🔹 형태 : 'static'이 메서드 선언부에 함께 쓰인다.
🔹 호출 : 클래스이름.메서드이름(매개변수);
🔹 인스턴스와 관련없이 기능하는 메서드를 정의한다.
🖍 클래스 메서드는 인스턴스 존재와 상관없이 호출할 수 있기 때문에,
인스턴스 변수처럼 인스턴스가 있어야 활용 가능한 변수는 클래스 메서드에 존재할 수 없다.
2. 인스턴스 메서드
🔹 형태 : 별도의 키워드가 없이 일반적인 메서드
🔹 호출 : 인스턴스참조변수이름.메서드이름(매개변수);
🔹 메서드에서 인스턴스 변수가 활용될 때 사용하며, 이러한 이유로 호출하기 위하여 인스턴스가 필요함
🖍 인스턴스 메서드 내부에는 클래스 변수를 함께 활용할 수 있다.
3. 언제 어떠한 메서드를 써야 할까?
클래스 작성 시에 인스턴스 변수를 활용하지 않는 메서드의 경우에는 클래스 메서드로 선언하는 것이 좋다.
클래스 메서드는 'Method Area'로 가서 바로 호출해 올 수 있지만,
인스턴스 메서드는 'Heap'으로 먼저 가서 인스턴스에 들린 후 'Method Area'를 가기 때문에 성능 상의 문제가 생길 수 있다.
'JAVA' 카테고리의 다른 글
클래스 간의 관계 - 상속, 포함 (0) | 2022.09.18 |
---|---|
오버로딩(Overloading) (0) | 2022.09.17 |
클래스 변수, 인스턴스 변수, 지역 변수, 생성자 (0) | 2022.09.15 |
배열 (1) | 2022.09.10 |
클래스 객체 인스턴스 (0) | 2022.09.09 |