• 类的成员的四种访问权限

    • private

      • 只能在当前类中访问
    • 无修饰
      • 同一个包中的类都可以访问
    • protected
      • 同一个包中的类可以访问
      • 不同包中的子类可以访问
    • public
      • 所有类都可以访问
  • 示例代码
    • 同包

      •  

         package com.study.main;
        //同包非子类 public class Two
        {
        private int a;
        protected int b;
        public int c;
        int d;
        }
      •  
        package com.study.main;
        //同包子类
        public class Son extends Main
        { }
      •  package com.study.main;
        //测试类
        import com.study.one.One;
        import com.study.one.SonOne; public class Main
        {
        private int a;
        protected int b;
        public int c;
        int d; public static void main(String[] args)
        {
        Main m = new Main();//同一类
        System.out.println("同一类");
        System.out.println(m.a);//private
        System.out.println(m.b);//protected
        System.out.println(m.c);//public
        System.out.println(m.d);//无修饰 Son s = new Son();//同一包中的子类
        System.out.println("同一包中的子类");
        // System.out.println(s.a);//private无法访问
        System.out.println(s.b);//protected
        System.out.println(s.c);//public
        System.out.println(s.d);//无修饰 Two t = new Two();//同一包中的非子类
        System.out.println("同一包中的非子类");
        // System.out.println(t.a);//private无法访问
        System.out.println(t.b);//protected
        System.out.println(t.c);//public
        System.out.println(t.d);//无修饰 SonOne so = new SonOne();//不同包中的子类
        System.out.println("不同包中的子类");
        // System.out.println(so.a);//private无法访问
        System.out.println(so.b);//protected
        System.out.println(so.c);//public
        // System.out.println(so.d);//无修饰无法访问 One o = new One();//不同包中的非子类
        System.out.println("不同包中的非子类");
        // System.out.println(o.a);//private无法访问
        // System.out.println(o.b);//protected无法访问
        System.out.println(o.c);//public
        // System.out.println(o.d);//无修饰无法访问 }
        }
    • 不同包
      •   

        package com.study.one;
        //不同包非子类
        public class One
        {
        private int a;
        protected int b;
        public int c;
        int d;
        }
      •  package com.study.one;
        //不同包子类
        import com.study.main.Main; public class SonOne extends Main
        { }
    • 运行截图

      •   
  • 总结
    • 当前类的都可以访问
    • 同一个包中的类除了private不能访问
    • 不同包中的子类只有public和protected可以访问
    • 不同包中的非子类只有public可以访问

JAVA(2)之关于类的访问权限控制的更多相关文章

  1. Java之路(五) 访问权限控制

    在Java中,所有事物都具有某种形式的访问权限控制. 访问权限的控制等级从最大到最小依次为:public,protected,包访问权限(无关键词)和private. public,protected ...

  2. java基础-类成员访问权限控制

    一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制 ...

  3. Java继承多态中的方法访问权限控制

    java中的方法天生具有继承多态特性,这点与C++有很大不同(需要在父类方发上加virtual关键字),但用起来确实方便了许多. 最简单的继承多态 声明一个接口BaseIF,只包含一个方法声明 pub ...

  4. Java成员的访问权限控制

    Java中的访问权限控制包含两个部分: 类的访问权限控制 类成员的访问权限控制 对类来说,访问权限控制修饰符可以是public或者无修饰符(默认的包访问权限): 对于类成员来说,访问权限控制修饰符可以 ...

  5. Java基础详解 (一)Java的类成员访问权限修饰词(以及类访问权限)

    在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下),protected和public.其权 ...

  6. java类的访问权限

    1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修 ...

  7. Java编程思想学习笔记——类的访问权限

    类的访问权限 Java中,访问权限修饰词用于确定库中哪些类对于该库的使用者是可用的. public class Foo{ } 注意点: 每个文件(编译单元)只能有一个public类. public类的 ...

  8. (转)浅析Java中的访问权限控制

    原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...

  9. [THINKING IN JAVA]访问权限控制

    6 访问权限控制 6.1 包:库单元 package.import.import *.import static: 修改classpath环境变量可以将自己写的类库添加至环境变量并在任何java程序中 ...

随机推荐

  1. AcWing 1016. 最大上升子序列和

    #include<iostream> using namespace std ; ; int f[N]; int a[N]; int main() { int n; cin>> ...

  2. Jmeter录制https协议不能跳转成功(证书导入)

    原文:  http://www.cnblogs.com/Lam7/p/7154120.html 录制脚本的时候,比如录制https协议的百度网站 https://www.baidu.com ,所有录制 ...

  3. c# 嵌入资源并读取

    原文:c# 嵌入资源并读取 1. 右键点击项目,选择资源,然后选择资源的类型,插入资源. 2. 这时候在项目的目录树上会出现一个Resource的文件夹,找到嵌入的资源文件,右击属性,在 Build ...

  4. 使用yaml格式进行接口测试报错

    前言:本人公司使用yaml做接口测试.某日开发写了一个字典嵌套列表,列表里面再嵌套字典的接口. yaml的值应该为下图(注意缩进问题)   加了-代表下面是一个列表 {'uid': '3a61479f ...

  5. Python连接操作数据库

    步骤: 1.创建与数据库的连接对象: 2.创建游标: 3.通过游标执行语句 4.增删改需要提交(commit)数据 5.关闭连接 如: import MySQLdb   # Python通过MySQL ...

  6. Big research problems (1)

    1. how to measure the uncertainty of prediction model or data analysis? 2.

  7. python3练习100题——012

    今天继续,答案都通过py3测试. 原题链接:http://www.runoob.com/python/python-exercise-example12.html 题目:判断101-200之间有多少个 ...

  8. linux做免密登录,成功分发公钥后登录主机依旧需要输入密码的问题解决

    问题描述 在主机A上用ssh-keygen生成密钥对后,用ssh-copy-id命令将公钥成功copy到主机B上后,测试从A免密登录B,但是依旧需要输入主机B的密码后才能登录. 出现此错误的原因 如果 ...

  9. 《CSS揭秘》》

    1,透明边框 默认状态下,背景会延伸到边框区域的下层.这样就在半透明的黑色边框中透出了这个容器自己的纯白色背景. 谢天谢地,从w3c的背景与边框第三版开始,我们可以通过 background-clip ...

  10. mybatis - @MapperScan

    一. 测试代码 //实体类 public class User { private Integer id; private String name; private Integer age; priv ...