자바에는 public, protected, private 이라는 키워드가 있는데 이들은 객체가 자신을

공개하느냐, 공개하지않느냐 그리고 어느범위로 공개하느냐를 표시하는 기능을 가집니다.

 

public , protected, private의 키워드는 클래스의 멤버변수,static 변수, 멤버메소드, static

메소드, 생성자앞에 위치할 수 있는데 어떤 지정자가 어디에 자리 잡느냐에 따라서 객체의

성격이 좌우되는 상당히 중요한 일을 이들은 하고 있습니다.

 

만약 객체가 자신의 변수나 , 메소드 앞에  public으로 지정했다면 그 변수 및 메소드에 대한 기본적인 뜻은 마음껏 읽고, 쓰고, 호출하라는 것입니다.

누가 사용해도 신경 안 쓰고 , 최선을 다해서 일을 하겠다는 뜻입니다.

privatepublic과는 정반대의 뜻을 갖고 있습니다. 변수나 메소드의 지정자 private

으로 했다면 변수나 메소드를 읽고,쓰고,호출하는 것은 있을 수 없고 허락하지 않겠다는 뜻

입니다. 만약 객체를 읽고,쓰고,호출 하는 것을 전혀 할 수 없다면 그 객체는 쓸모없는 것

이 아닐까요? 좀 복잡한 얘기이긴 합니다만 곧 풀어 보겠습니다.

변수나 메소드앞에 protected를 지정했다면 이것(public)도 아니고 저것(private)

아닙니다. 마음껏 읽고, 쓰고, 호출하라는 것도 아니고 절대로 읽고,쓰고,호출할 수 없다는 것도 아닙니다. 상당히 짜증나는 말인데요, 쉽게 말하면 아주 특별한 관계에가 있을 때만

읽고,쓰고,호출하도록하고 그렇지 않을때는 허락하지 않겠다는 뜻입니다. 조금 복잡하지요.

간혹 변수나 메소드앞에 아무것도 없는것도 있는데 이것은 기본지정자(패키지 지정자)

입니다.

기본지정자 역시 변수나 메소드를 마음껏 읽고,쓰고,호출하라는 것도 아니고, 절대로 읽고,

쓰고,호출할 수 없다는 것도 아닙니다. 이 역시 특별한 관계가 있을 때만 읽고,쓰고,호출할

수 있도록 허락하겠다는 뜻인데, 특별한 관계의 기준이 protected와는 조금 다릅니다.

Posted by
,