멤버 또는 클래스에 사용되 외부로부터 접근을 제한한다
private 같은클래스 내에서만 접근이 가능하다
default(생략형) 같은 패키지 내에서만 접근이 가능하다
protected 같은 페키지 내에서, 다른패키지의 자손클래스에서 접근이가능하다
public 접근 제한이 없다
일반적으로 protected, private는 클래스 앞에 못쓴다
inner class에서는 가능하다
//public class AccessParent
public String publicA ="public Type Variable";
protected String protectedA ="protected Type Variable";
String defaultA ="default Type Variable";
private String privateA ="private Type Variable";
----------
import aPack.*;
//public class AccessChild extends AccessParent
public void printMethod() {
System.out.println(publicA);
System.out.println(protectedA);
System.out.println(defaultA);
System.out.println(privateA);
}
//main
AccessChild ac = new AccessChild();
ac.printMethod();
//AccessParents와 AccessChild는 다른 package이므로
//같은 class에서만 가능한 private와
//같은 package에서만 가능한 default는
//출력되지 않고 protected 는 상속을 받았기때문에 출력이가능하다
//public의 경우는 상속을 받지않을경우 객체생성이 안되있기때문에
//부모클래스 변수에 static을 붙여야만 호출이 가능하다
'java' 카테고리의 다른 글
final class, final method (0) | 2019.08.02 |
---|---|
추상클래스(abstract class), 추상메소드(abstract method) (0) | 2019.08.02 |
inheritance(상속), overriding (0) | 2019.08.02 |
캡슐화(encapsulation) (0) | 2019.08.02 |
메소드, 생성자 오버로딩(overloading) (0) | 2019.08.02 |