Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

8.7 private 메소드 - private 메소드, private 정적 메소드 본문

이것이 자바다/08 인터페이스

8.7 private 메소드 - private 메소드, private 정적 메소드

빌드이너프 2024. 4. 3. 17:54

인터페이스의 상수 필드, 추상 메소드, 디폴드 메소드, 정적 메소드는 모두 public 접근 제한을 갖는다

이 멤버들을 선언할 때는 public을 생략하더라도 컴파일 과정에서 public 접근 제한자가 붙어 항상 외부에서 접근이 가능하다

 

인터페이스 외부에서 접근할 수 없는 private 메소드 선언도 가능

private 메소드 구현 객체가 필요한 메소드
private 정적 메소드 구현 객체가 필요 없는 메소드

 

private 메소드는 디폴트 메소드 안에서만 호출이 가능

private 정적 메소드는 디폴트 메소드뿐만 아니라 정적 메소드 안에서도 호출 가능

 

private 메소드의 용도

디폴트와 정적 메소드들의 중복 코드를 줄이기 위함

package ch08.sec07;

public interface Service {
	//디폴드 메소드
	default void defaultMethod1() {
		System.out.println("defaultMehtod1 종속 코드");
		defaultCommon();
	}
	
	default void defaultMethod2() {
		System.out.println("defaultMehtod2 종속 코드");
		defaultCommon();
	}
		
	//private 메소드	
	private void defaultCommon() {
		System.out.println("defaultMethod1 중복 코드A");
		System.out.println("defaultMethod2 중복 코드B");
	}
	
	
	
	//정적 메소드
	static void staticMethod1() {
		System.out.println("staticMethod1 종속 코드");
		staticCommon();
	}
	
	static void staticMethod2() {
		System.out.println("staticMethod2 종속 코드");
		staticCommon();
	}
	
	//private 정적 메소드
	private static void staticCommon() {
		System.out.println("staticMethod 중복 코드C");
		System.out.println("staticMethod 중복 코드D");
	}
	
}
package ch08.sec07;

public class ServiceImpl implements Service {
}
package ch08.sec07;

public class ServiceExample {
	public static void main(String[] args) {
		Service service = new ServiceImpl();
		
		//디폴트 메소드 호출
		service.defaultMethod1();
		System.out.println();
		
		service.defaultMethod2();
		System.out.println();
		
		
		//정적 메소드 호출
		Service.staticMethod1();
		System.out.println();
		Service.staticMethod2();
		System.out.println();
	}
}
defaultMehtod1 종속 코드
defaultMethod1 중복 코드A
defaultMethod2 중복 코드B

defaultMehtod2 종속 코드
defaultMethod1 중복 코드A
defaultMethod2 중복 코드B

staticMethod1 종속 코드
staticMethod 중복 코드C
staticMethod 중복 코드D

staticMethod2 종속 코드
staticMethod 중복 코드C
staticMethod 중복 코드D

'이것이 자바다 > 08 인터페이스' 카테고리의 다른 글

8.9 인터페이스 상속  (0) 2024.04.03
8.8 다중 인터페이스 구현  (0) 2024.04.03
8.6 정적 메소드  (0) 2024.04.03
8.5 디폴트 메소드  (0) 2024.04.03
8.4 추상 메소드 - public abstract  (0) 2024.04.03