2015. 3. 9. 21:20ㆍComputer/Java
PUBLIC
public 은 가장 일반적인 접근 제어자입니다. public 으로 선언된 멤버 변수, 메소드는 어떠한 자바 프로그램에서든지 제한 없이 사용이 가능합니다.
PRIVATE
private 는 가장 폐쇄적인 접근 제어자입니다. private 으로 선언된 멤버변수, 메소드는 해당 클래스 내부의 메소드에서만 사용할 수 있습니다.즉, 다른 클래스에서는 접근 자체가 불가능합니다. ( 여기서 말하는 다른 클래스는 상속받은 서브클래스도 포함됩니다. )
자바 프로그래머들이 멤버변수나 메소드 앞에 private 붙이는 주된 이유는 이후에 변경할 가능성이 있기 때문입니다. 왜냐하면, private 변수나 메소드는 추후 내용을 바꿔도 다른 클래스들에게는 아무런 영향이 없기 때문입니다. ( 접근을 못하니 아에 참조하고 있는 경우가 없겠죠...?!)
PROTECTED
protected는 상속을 위해 준비된 접근 제어자입니다. protected로 선언된 멤버 변수, 메소드는 해당 클래스를 상속받은 서브클래스에겐 public 처럼 작동되고, 그 외의 클래스에겐 private 로 작동합니다. 즉 , 서브클래스와 해당 클래스 내부의 메소드에서만 사용 가능합니다.
FRIENDLY
friendly 접근 제어는 따로 접근제어자를 선언하지 않은 경우에 기본값으로 선언되는 접근 제어자입니다. 특징으로는, firendly 의 경우 동일 패키지 내에서만 public 하게 작동한다는 점입니다. 만일, 잘 사용하던 클래스를 다른 패키지로 옮긴 후 작동되지 않는 경우가 있다면, 해당 클래스의 접근 제어자가 생략되어 friendly 접근 제어로 되어 있을 가능성이 큽니다.
STATIC
1. static 메소드는 오직 static 멤버 변수만 사용할 수 있습니다.
2. static 메소드는 오직 같은 클래스 내의 static 메소드만 호출할 수 있습니다.
3. static 메소드는 this를 사용할 수 없습니다.
4. static 메소드는 일반 메소드는 오버라이딩 될 수 없습니다.
Final
1. class 앞에 선언 될 경우
해당 클래스는 슈퍼클래스가 될 수 없습니다.
2. 메소드에 선언될 경우
메소드 오버라이드 할 수 없습니다. 다시 말해, 상속받은 클래스가 부모의 fianl 메소드를 재정의 할 수 없습니다.
3.변수 앞에 사용될 경우
해당 변수는 한 번 값이 저장되면 변경이 불가능합니다. 즉, 상수로 선언한다는 의미입니다.