首页 > 学院 > 开发设计 > 正文

访问权限系列一(public/private/protected/default):成员变量

2019-11-15 01:06:08
字体:
来源:转载
供稿:网友
访问权限系列一(public/PRivate/protected/default):成员变量
通过两个程序包对自身或互相之间的访问,得到结果.(先编译Test_01,得到class文件,通过Test的集中访问情况)如下Test.java中内容:package com.java;/*   *  关于成员变量多种情况下的访问权限: *  ------------------------------------------------------------------------------ *                               public      private     protected       default *   1 同一个包,同一个类            可以         可以         可以            可以 * *   2 同一个包,不同的类            可以        不可以        可以            可以 * *   3 不同的包里的类               可以        不可以       不可以          不可以 * *   4 同一个包里有继承关系的类     可以        不可以        可以            可以 * *   5 不同的包里有继承关系的类     可以        不可以        可以           不可以 *-------------------------------------------------------------------------------- *  结论: public都可以访问; private只有在同一个类里才能直接访问; protected同一个包里可以访问,若想跨包访问,必须有继承关系; default只有同一个包里的可以访问; * */import cn.java.Test_01;import cn.java.test_02;//public class Test{  //这里1,2,3用;---->1不用实验public是公开的,都可以;public class Test extends Test_01{  //这里4,5用;    public static void main(String[] args){        /*-------------------------2---------------------------        A T = new A();//同一个包,不同的类;        System.out.println( T.m_1() );        System.out.println( T.m_2() );        System.out.println( T.m_3() );        System.out.println( T.m_4() );// 报错:m_4()可以在A中访问private        */        /*-------------------------3---------------------------        Test_01 T = new Test_01();//不同的包里的类,没有继承关系;        System.out.println( T.m_1() );//可以        System.out.println( T.m_2() );//报错:m_2在Test_01里不是公共的,无法从外部程序包中访问;        System.out.println( T.m_3() );//不可以        System.out.println( T.m_4() );//不可以        */        /*-------------------------4----------------------------        A T = new A();//同一个包里的不同类,有继承关系;        System.out.println( T.m_1() );//可以        System.out.println( T.m_2() );//可以        System.out.println( T.m_3() );//可以        System.out.println( T.m_4() );//报错: 可以在类A中访问;        */        /*-------------------------5----------------------------        Test T = new Test();        System.out.println( T.m_1() );//可以        System.out.println( T.m_2() );//m_2不是公共的,无法从外部程序包中访问;        System.out.println( T.m_3() );//可以        System.out.println( T.m_4() );//可以在Test_01中访问;        */    }}class A{    public int m_1(){return 1;}    int m_2(){return 1;}    protected int m_3(){return 1;}    private int m_4(){return 1;}}
如下是Test_01.java的内容:package cn.java;public class Test_01{    //成员变量    public int i_1 = 100;    int i_2 = 200;//默认default    protected int i_3 = 300;    private int i_4 = 400;    //成员方法    public int m_1(){        return 1;    }    int m_2(){        return 1;    }    protected int m_3(){        return 1;    }    private int m_4(){        return 1;    }}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表