반응형
반응형
public > protected > default > private
public = 공공의, 다른 패키지, 같은 패키지 모두 사용 가능함.
protected = 다른 패키지인데 접근 불가함. 하지만 상속하는경우
또는 임포트하는 경우 둘다 사용이 가능하다.
default = 다른 패키지인데 상속이여도 접근 불가함.
private = 같은 패키지인데 상속이여도 사용 불가함.
어떤 변수가 private으로 접근제어자가 설정되어있는경우 직접 접근은 불가하나
메소드를 사용하여 접근은 가능하다.(메소드가 private로 되어있으면 이또한 접근 불가하다.)
1번
package hiding;
public class Student{
int studentID;
private String studentName;
int grade;
String address;
public String getStudentName(){
return studentName;
}
public void setStudentName(String studentName){
this.studentName = studentName;
}
}
2번
package hiding;
public clss StudentTest{
public static void main(String[] args){
Student studentLee = new Student();
studentLee.studentName = "이상원"; // 오류발생
System.out.println(studentLee.getStudentName());
}
}
위 코드를 보면 1번의 변수 studentName의 접근제어자를 private가 아닌 접근제어자로 하는 경우 변수에 직접 접근가능하다.
하지만 private로 접근제어라를 설정하는 경우 변수에 직접접근은 불가하고 get과 set로만 접근이 가능하다.
페이지에 보이지않고 은닉상태로 값을 이동하는것이 가능하다.
반응형
'🖥Web > 🔥Java' 카테고리의 다른 글
[Java] String, StringBuilder, StringBuffer의 차이 (0) | 2020.06.05 |
---|---|
[JAVA] 추상클래스와 인터페이스의 차이 (0) | 2020.05.25 |
[JAVA] URL 코드보기 (0) | 2020.03.18 |
[JAVA] 스레드 기본상식, 데몬스레드 (0) | 2020.03.18 |
[JAVA]StreamReader , BufferedReader (0) | 2020.03.18 |