public
은 메서드를 재정의 할 수 있으며 둘러싸는 클래스가 표시되는 모든 코드에서 사용할 수 있음을 의미합니다.
private
은 해당 클래스가 사용할 수있는 메서드임을 나타냅니다.
protected
은 메서드를 포함하는 클래스와 해당 클래스를 확장하는 모든 클래스에서만 호출 할 수 있음을 의미합니다.
패키지 (메서드 앞에 키워드 없음)는 메서드를 포함하는 클래스와 동일한 패키지에있는 클래스 내의 모든 코드에서 메서드를 호출 할 수 있음을 의미합니다.
In Java, difference between default, public, protected, and private
이 다른 키워드는 클래스가 사용되는 방법을 설계에 유용합니다. public
메소드는 클래스 사용자에게 노출되는 "계약서"의 일부입니다. private
메서드는 일반적으로 클래스의 사용자와의 "계약"을 위반하지 않고 나중에 바꾸거나 수정하려는 경우에 대비하여 논리를 숨기려고하기 때문에 외부 세계에 어떤 식 으로든 노출되어서는 안되는 구현 코드입니다.
protected
클래스를 확장하는 클래스에서 사용할 수있는 메서드가 있습니다. 어쩌면 당신이 오버라이드를 가능하게하고 싶은 구현이있을 수도 있습니다 - 아니면 클래스를 작동시키기 위해이 메소드를 구현하기 위해 확장 클래스가 필요하지만 클래스의 호출자에게 노출되는 "계약"의 일부가 아닙니다. 또는 확장 클래스를 호출하는 사람들.
package
을 사용하여 패키지의 다른 클래스에서 호출 할 수 있지만 클래스를 사용하는 사용자 (사용자와의 "계약"에 속하지 않음)에 노출하고 싶지는 않은 구현 코드를 만듭니다. 패키지 레벨을 사용합니다. 메서드를 사용하여 단위 테스트에서 까다로운 구현 코드를 테스트해야하지만 메서드를 공개하지 않으려는 경우
이 항목을 확인하십시오. http://stackoverflow.com/questions/2620699/why-private-methods-in-the-object-oriented. – zbyszek26104