zoukankan      html  css  js  c++  java
  • Java访问权限

    public > protected > default > private

    • public:该成员可以被任意包下,任意类的成员进行访问;
    • protected:该成员可以被该类内部成员访问,也可以被同一包下其他的类访问,还可以被它的子类访问;
    • defalut:该成员可以被该类内部成员访问,也可以被同一包下其他的类访问;
    • private:该成员可以被该类内部成员访问。
    访问权限 本类 本包的类 本包的子类 外包的子类 外包的类
    public
    protected
    default
    private

    上代码:Java访问权限.zip

    //文件结构
    Test
    |-- src
       |-- cat --------猫猫包
          |-- Kit -----本包的子类
          |-- Kitt ----本包的类
          |-- Kitty ---本类
       |-- dog --------狗狗包
          |-- Ki ------外包的子类
          |-- Puppy ---外包的类
    

    本类

    // 本类
    package cat;
    
    public class Kitty {
        public static String catA = "catA";
        protected static String catB = "catB";
        static String catC = "catC";
        private static String catD = "catD";
    
        public static void main(String[] args) {
            // OK
            System.out.println(catA);
            // OK
            System.out.println(catB);
            // OK
            System.out.println(catC);
            // OK
            System.out.println(catD);
        }
    }
    

    本包的类

    // 本包的类
    package cat;
    
    public class Kitt {
        public static void main(String[] args) {
            // OK
            System.out.println(Kitty.catA);
            // OK
            System.out.println(Kitty.catB);
            // OK
            System.out.println(Kitty.catC);
            // ERROR, 'catD' has private access in 'cat.Kitty'
            System.out.println(Kitty.catD);
        }
    }
    

    本包的子类

    // 本包的子类
    package cat;
    
    public class Kit extends Kitty {
        public static void main(String[] args) {
            // OK
            System.out.println(catA);
            // OK
            System.out.println(catB);
            // OK
            System.out.println(catC);
            // ERROR, 'catD' has private access in 'cat.Kitty'
            System.out.println(catD);
        }
    }
    

    外包的子类

    // 外包的子类
    package dog;
    
    import cat.Kitty;
    
    public class Ki extends Kitty {
        public static void main(String[] args) {
            // OK
            System.out.println(catA);
            // OK
            System.out.println(catB);
            // ERROR, 'catC' is not public in 'cat.Kitty'. Cannot be accessed from outside package
            System.out.println(catC);
            // ERROR, 'catD' has private access in 'cat.Kitty'
            System.out.println(catD);
        }
    }
    

    外包的类

    // 外包的类
    package dog;
    
    import cat.Kitty;
    
    public class Puppy {
        public static void main(String[] args) {
            // OK
            System.out.println(Kitty.catA);
            // ERROR, 'catB' has protected access in 'cat.Kitty'
            System.out.println(Kitty.catB);
            // ERROR, 'catC' is not public in 'cat.Kitty'. Cannot be accessed from outside package
            System.out.println(Kitty.catC);
            // ERROR, 'catD' has private access in 'cat.Kitty'
            System.out.println(Kitty.catD);
        }
    }
    

    逐行注释,基本上也没啥好解释的

  • 相关阅读:
    VC中的头文件stdafx.h的作用
    目标跟踪运动跟踪视觉跟踪综述(转)
    【转载】fatal error C1010: unexpected end of file while looking for precompiled header directive
    Realtime Compressive Tracking 刚出的一个跟踪技术
    研究反对称矩阵性质与应用的原因
    OpenGL在MFC下编程原理 Windows操作系统对OpenGL的支持(转)
    我们是不是菜鸟,可用以下情况自我判断。如果常发生以下事情,可自省已。共勉:
    www5net6com
    自定义的GridView控件源代码
    一直想写一本asp.net教程与实验指导,可是......
  • 原文地址:https://www.cnblogs.com/Subaru/p/15494676.html
Copyright © 2011-2022 走看看