반응형
자바 접근제한자란
자바(java)에서 접근 제한자는 총 4가지로 구성이 되어있습니다.
private -> default -> protected -> public 순으로 올라갈 수록 접근범위가 커집니다.
1. private
private접근제한자는 외부에 공개되지 않으며, 외부에서는 직접 접근할 수 없으며 해당 클래스에서만 접근이 가능합니다.
public class Private_ex {
private String privateEx = "private는 같은 클래스에만 접근할수 있습니다.";
private String getAbc(){
return this.privateEx;
}
}
2. default
접근제어자를 별도로 설정하지 않는다면 default 접근제한가 되어 해당 패키지 내에서만 접근이 가능합니다.
package test;
public class Default_ex {
String default_ex = "접근제한자가 아무것도 없는것은 기본적으로 default가 되며";
String default_ex1 = "defualt는 같은 패키지내에서만 접근 가능합니다.";
}
package test; //같은 패키지에 있습니다.
public class Default_test {
public static void main(String[] args) {
Default_ex default_ex = new Default_ex();
System.out.println(default_ex.default_ex);
//접근제한자가 아무것도 없는것은 기본적으로 default가 되며
System.out.println(default_ex.default_ex1);
//default는 같은 패키지내에서만 접근 가능합니다.
}
}
3. protected
protected 접근제한자는 같은 패키지에 속하는 클래스와 다른 패키지에 속하는 자식 클래스까지만 허용합니다.
package test;
public class Protected_ex {
protected String protected_ex ="같은패키지 또는 다른패키지이면서 상속받은 클래스만 접속가능합니다.";
}
package test.test_other;//다른 패키지입니다.
import test.Protected_ex;
public class Protected_test extends Protected_ex { //상속을 받은 클래스입니다.
public static void main(String[] args) {
Protected_ex pe = new Protected_ex();
System.out.println(pe.protected_ex); //Protected_ex의 protected_ex가 접근이 가능합니다.
}
}
4. Public
public 접근제한자는 프로그램에서 누구나 접근이 가능합니다.
그리고 public 메소드를 통해서만 해당 객체의 private 멤버에 접근할 수 있으므로
public 메소드는 private 멤버와 프로그램 사이의 인터페이스(interface) 역할을 수행한다고 할 수 있습니다.
public class Public_ex {
public String pe = "누구나 접근이 가능합니다.";
public String getPe(){
return this.pe;
}
private String pe1 = "private는 public를 통해서 외부에서 접근이 가능합니다.";
public String getPe1(){
return getPe1();
}
}
접근 제어자 | 같은 클래스 | 같은 패키지 | 자식 클래스 | 프로그램내 |
public | O | O | O | O |
protected | O | O | O | X |
default | O | O | X | X |
private | O | X | X | X |
반응형
'JAVA > 개념' 카테고리의 다른 글
[ 개념 ] 자바 set 사용법 출력 정렬 - JAVA (0) | 2023.03.06 |
---|---|
[ 개념 ] 자바 2차원 3차원 다차원 배열(Array)출력 입력 예제 (1) | 2023.03.06 |
[ 개념 ] 자바 배열(Array) 문법 사용법 복사 (0) | 2023.03.04 |
[ 개념 ] 자바 JAVA8 특징 (0) | 2020.11.15 |
[ 개념 ] 자바(java) 인터페이스(interface)란 (0) | 2020.11.15 |
댓글