• 成员方法与成员变量访问权限的求证


    package com.jaovo;
    /**
     *_1_ 成员变量访问权限的求证 
     *                      public   private    protected   default(默认的权限)
     *自己包自己类              可访问      可访问      可访问          可访问
     *自己包别的类              可访问    不可访问      可访问          可访问
     *别的包别的类              可访问    不可访问    不可访问        不可访问
     *自己包别的类有继承关系    可访问    不可访问      可访问          可访问
     *别的包别的类有继承关系    可访问    不可访问      可访问        不可访问
     *---------------------------------------------------------------------------
     *_2_ 成员方法访问权限的求证
     *                      public   private    protected    default(默认的权限)
     *自己包自己类              可访问      可访问      可访问          可访问
     *自己包别的类              可访问    不可访问      可访问          可访问
     *别的包别的类              可访问    不可访问    不可访问        不可访问
     *自己包别的类有继承关系    可访问    不可访问      可访问          可访问
     *别的包别的类有继承关系    可访问    不可访问      可访问        不可访问
     */
    import cn.jaovo.D;
    import cn.jaovo.E;
    //public class Chengyuan{
    //public class Chengyuan extends C{
    //public class Chengyuan extends D{
    public class Chengyuan extends E{
        public static void main(String[] args){
        // 一 成员变量的权限访问
    
        /*1 B b = new B();//自己包别的类
            System.out.println( b.i1 );
            System.out.println( b.i2 );
            System.out.println( b.i3 );//i3可以在B中访问private
            System.out.println( b.i4 );
            */
        /*2 Chengyuan ch = new Chengyuan();//自己包自己类
            System.out.println( ch.i1 );
            System.out.println( ch.i2 );
            System.out.println( ch.i3 );
            System.out.println( ch.i4 );
            */
        /*3 D d = new D();//别的包别的类    
            System.out.println( d.i1 );
            System.out.println( d.i2 );//i2 在D中不是公共的;无法从外部程序包中对其进行访问
            System.out.println( d.i3 );//i3可以在D中访问private
            System.out.println( d.i4 );//i4可以在D中访问protected
            */
        /*4 Chengyuan ch = new Chengyuan();//自己包别的类有继承关系Chengyuan extends C
            System.out.println( ch.i1 );
            System.out.println( ch.i2 );
            System.out.println( ch.i3 );//i3可以在B中访问
            System.out.println( ch.i4 );
            */
        /*5 Chengyuan ch = new Chengyuan();//别的包别的类有继承关系Chengyuan extends D
            System.out.println( ch.i1 );
            System.out.println( ch.i2 );//i2在D中不是公共的;无法从外部程序包中对其进行访问
            System.out.println( ch.i3 );//i3可以在D中访问private
            System.out.println( ch.i4 );
            */
    //======================================================
        //二 成员方法的访问权限
            /*1 Chengyuan ch = new Chengyuan();//自己包自己类
            System.out.println( ch.m1() );
            System.out.println( ch.m2() );
            System.out.println( ch.m3() );
            System.out.println( ch.m4() );   
            */
            /*2 B b = new B();//自己包别的类
            System.out.println( b.m1() );
            System.out.println( b.m2() );
            System.out.println( b.m3() );//m3()可以在B中访问private
            System.out.println( b.m4() );
            */
            /*3 E e = new E();//别的包 别的类
            System.out.println( e.m1() );
            System.out.println( e.m2() );//m2在E中不是公共的;无法从外部程序包中对其进行访问
            System.out.println( e.m3() );//m3可以在E中访问private
            System.out.println( e.m4() ); //m4()可以在E中访问protected
            */
            /*4 C c = new C();//自己包别的类有继承关系Chengyuan extends C
            System.out.println( c.m1() );
            System.out.println( c.m2() );
            System.out.println( c.m3() );//m3()可以在C中访问
            System.out.println( c.m4() );   
            */
            //5
            Chengyuan ch = new Chengyuan();
            System.out.println( ch.m1() );
            System.out.println( ch.m2() );//找不到符号
            System.out.println( ch.m3() );//找不到符号
            System.out.println( ch.m4() );   
        }
    }
    
    class B{
        //1 成员变量
        public int i1 = 100; 
        int i2 = 200;
        private int i3 = 300;
        protected int i4 = 400;
        //2 成员方法
        public int m1(){return 1;}
        int m2(){return 1;}
        private int m3(){return 1;}
        protected int m4(){return 1;}
    }
    
    class C{
        //1 成员变量
        public int i1 = 100; 
        int i2 = 200;
        private int i3 = 300;
        protected int i4 = 400;
        //2 成员方法
        public int m1(){return 1;}
        int m2(){return 1;}
        private int m3(){return 1;}
        protected int m4(){return 1;}
    }
    //========================================================
    //D.class文件和E.class文件在cn包内,为了方便把他们放到这里
    package cn.jaovo;
    public class D{
        //1 成员变量
        public int i1 = 100; 
        int i2 = 200;
        private int i3 = 300;
        protected int i4 = 400;
        //2 成员方法
        public int m1(){return 1;}
        int m2(){return 1;}
        private int m3(){return 1;}
        protected int m4(){return 1;}
    }
    //-------
    package cn.jaovo;
    public class E{
        //1 成员变量
        public int i1 = 100; 
        int i2 = 200;
        private int i3 = 300;
        protected int i4 = 400;
        //2 成员方法
        public int m1(){return 1;}
        int m2(){return 1;}
        private int m3(){return 1;}
        protected int m4(){return 1;}
    }
  • 相关阅读:
    私有构造函数(C# 编程指南)
    unshift(), push(),shift(),pop()函数的运用
    flex转载
    二叉树各节点的实现
    关于删除树中指定节点的实例分析
    树的各种操作代码实现
    关于二叉查找树的++迭代器的实现
    利用map,以一个单词为键,以与它相差一个字母的单词组集作为值的算法编程
    逆向单项链表的算法
    给Vector类添加insert
  • 原文地址:https://www.cnblogs.com/bokexueyuan/p/4722627.html
Copyright © 2020-2023  润新知