[JAVA]アクセス指定子


  • 指定者に近い
    メンバーフィールドまたはメソッドの前に書きます.
  • public:同じパッケージ内の他のクラスからアクセス可能
  • protected:同一パッケージ内のクラスからアクセス可能
  • private:同一パッケージ内のクラスに直接アクセスできない(同一パッケージ内の他のクラスにアクセス可能)
  • default:主にインタフェース用
  • package package1;
    
    public class Ex06 {
    
    	private String name;
    	private int age;
    	protected String addr;
    	double height;	// 접근 지정자를 명시하지 않음	// protected
    	public String phone;
    	
    	public void setName(String name) {
    		this.name = name;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public void setAddr(String addr) {
    		this.addr = addr;
    	}
    	public void setHeight(double height) {
    		this.height = height;
    	}
    	public String getName() {
    		return this.name;
    	}
    	
    	public int getAge() {
    		return this.age;
    	}
    	public String getAddr() {
    		return this.addr;
    	}
    	public double getHeight() {
    		return this.height;
    	}
    	protected void print() {
    		System.out.println(name);
    		System.out.println(age);
    		System.out.println(addr);
    	}
    
    }
    
    package package1;
    
    public class Ex07Test {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		Ex06 ex = new Ex06();
    		// ex.name = "이현경";	// private는 직접 접근할 수 없음
    		// ex.age = 25;
    		ex.addr = "시흥";		// protected는 직접 접근이 가능
    		ex.height = 156.5; 	// 접근 지정이 없어도 접근 가능
    		ex.phone = "010-0000-0000";
    	}
    
    }
    
  • import
    包装が異なる場合は、不適切な声明をしなければならない.
    package package3;
    
    // 패키지가 다르면 import를 해주어야 함
    import package1.Ex06;
    
    public class Ex08Test {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		Ex06 ex = new Ex06();
    		// ex.name="이현경";	// private는 다른 패키지에서도 사용할 수 없음
    		// ex.addr = "경기도";	// protected는 패키지가 다르면 접근할 수 없음
    		// ex.height = 156.5;
    		ex.phone = "010-0000-0000";	// public은 어디서든지 접근 가능
    	
    		// ex.print();	// 패키지가 다르기 때문에 접근할 수 없음
    		
    	}
    
    }