Java访问控制权限
2016-05-06 17:57
381 查看
在Java中一共存在四种访问控制权限,即 private、default(默认)、protected和public
本包中的其他类所访问,但是不能被其他包的类所访问。
使用表来总结上述的访问控制权限。
下面介绍protected访问控制权限的作用
在 com.home.a 包中定义一个HelloDemo类,其中包含一个 protected 访问权限
在 com.home.b 包中的子类访问此类中的 url 属性
程序运行结果
1、private 访问权限
private属于私有访问权限,可以用在属性的定义、方法的声明上,一旦使用了private关键字声明,则只能在本类中进行访问2、default(默认)访问权限
如果一个类中的属性或方法没有使用任何的访问权限声明,则就是默认的访问权限,默认的访问权限可以被本包中的其他类所访问,但是不能被其他包的类所访问。
3、protected 访问权限
protected属于受保护的访问权限。一个类中的成员如果使用了protected访问权限,则只能被本包及不同包的子类访问。4、public 访问权限
public属于公共访问权限,如果一个类中的成员使用了public访问权限,就可以在所有类中被访问,不管是否在同一个包中。使用表来总结上述的访问控制权限。
范围 | private | default | protected | public |
同一类 | √ | √ | √ | √ |
同一包中的类 | √ | √ | √ | |
不同包中的子类 | √ | √ | ||
其他包中的类 | √ |
在 com.home.a 包中定义一个HelloDemo类,其中包含一个 protected 访问权限
package com.home.a; public class HelloDemo { protected String url = "http://itmyhome.com"; //只能被本包及不同包的子类访问 }
在 com.home.b 包中的子类访问此类中的 url 属性
package com.home.b; import com.home.a.HelloDemo; class SubHelloDemo extends HelloDemo{ //定义HelloDemo子类 public void print(){ System.out.println("访问受保护属性: " + url); //可以访问protected权限 } } public class ProtectedTest { public static void main(String[] args) { SubHelloDemo sub = new SubHelloDemo(); sub.print(); } }
程序运行结果
访问受保护属性: http://itmyhome.com[/code]
以上程序中在不同包的子类里访问了 protected 属性,而如果现在由不同包的类直接访问HelloDemo类中的
protected 属性,则会出现编译错误。package com.home.b; import com.home.a.HelloDemo; public class ProtectedTest { public static void main(String[] args) { HelloDemo demo = new HelloDemo(); System.out.println(demo.url); // The field HelloDemo.url is not visible } }
作者:itmyhome
相关文章推荐
- JAVA SWITCH语句
- JAVA IF判断语句
- 如何把java代码转换成smali代码
- eclipse(已装插件)导入svn下载的maven项目却没有svn标记
- JAVA键盘录入
- java中的锁
- 解决Android Studio引入SVN上Eclipse依赖工程不能实时更新的思考
- java反射初级练习
- Java中的方法
- 深入Spring事务(一)Spring事务概述
- Java---注解、类加载器-加强-实现运行任意目录下class中加了@MyTest的空参方法
- Java---注解、类加载器-加强-实现运行任意目录下class中加了@MyTest的空参方法
- java.lang.NoSuchFieldError: VERSION_2_3_0 报错解决方案
- Java 随机数比较和分析
- Java学习之分页查询
- java集合中的一些易混淆的知识点
- spring-security 相关文档
- Spring多数据源的配置和使用
- Spring的AOP
- java-加法器代码