zoukankan      html  css  js  c++  java
  • Java类成员访问控制权限

    类成员访问控制权限

    JAVA中有四种访问控制权限,分别为:private, default, protected, public

    1、Private

    如果一个成员方法或变量名前使用了private, 那么这个成员只能在类的内部使用。

    2、Default

    如果一个成员方法或变量名前没有使用任何访问控制符,就为default。默认的访问控制成员可以被这个包中的其它类访问(包括这个包中的子类内部以及这个包中所有类以对象.成员的方式访问)。如果这个子类不在这个包中,则子类也不能访问父类的默认访问控制成员

    3、Protected

    这个成员既可以被这个包中其它类访问,也可以被不同包中的子类内部访问

    4、Public

    可以被所有类访问,不管访问类与被访问类在不在同一个包中

    总结

    Private

    Default

    Protected

    public

    只用本类内部可访问

    同一包中的类(包括子类,以及以对象.成员)

     

    其它包中的子类内部

     

     

    其它包中的类(对象.成员, 不是子类)

     

     

     

    以下是示例代码:

    1、包myjava.learn.package1:

    Person.java

    package myjava.learn.package1;
    
    public class Person {
    
    	private int a_pri = 10; // private只能在本类被访问, 子类也不能访问
    	int a_defaut = 11;
    	protected int a_prot = 12;
    	public int a_pub = 13;
    	
    }
    

      

    PersonPackage1.java

    package myjava.learn.package1;
    
    public class PersonPackage1 extends Person{
    	
    
    	void fun(){
    		// 以下当然可以被访问,因为在同一个包中的类可以访问default, protected, public
    		this.a_defaut = 12;
    		this.a_prot = 13;
    		this.a_pub = 14;
    		System.out.println( this.a_defaut );
    	}
    }
    

      

    Main.java

    package myjava.learn.package1;
    
    public class Main {
    	public static void main( String args [] ){
    		
    		PersonPackage1 pp = new PersonPackage1();
    		pp.fun();
    		
    		// 同一包中的类可以以[对象.成员]访问default, protected, public
    		System.out.println( pp.a_defaut );
    		System.out.println( pp.a_prot );
    		System.out.println( pp.a_pub );
    	}
    }
    

      

    2、包myjava.learn.package2:

    Main.java

    package myjava.learn.package2;
    
    import myjava.learn.package1.PersonPackage1;
    
    
    import myjava.learn.package1.Person;
    
    
    // 其它包中的子类
    class PersonPackage2 extends Person{
    	
    	void PrintAttr(){
    		
    		// 不同包的子类只能访问父类的public, protected
    		System.out.println(this.a_prot);
    		System.out.println(this.a_pub );
    		
    	}
    
    }
    
    
    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		// 其它包中的类(对象.成员, 不是子类),只能访问public成员
    		PersonPackage1 pp = new PersonPackage1();
    		System.out.println(pp.a_pub);
    		
    		PersonPackage2 pp2 = new PersonPackage2();
    		pp2.PrintAttr();
    
    	}
    
    }
    

      

  • 相关阅读:
    ASP计算周开始和一年有多少周及某年第一周开始日期
    http://www.lancen.net/
    JSP的对象
    两个SQL语句
    sql 分頁
    网页特效制作汇总
    存储过程 解密
    一个计算周次和本周时间范围的代码(c#)
    Java试题
    如何在 VS 2005 里调试 Javascript
  • 原文地址:https://www.cnblogs.com/shanql/p/5898483.html
Copyright © 2011-2022 走看看