首页 / JAVA / Java访问权限就是这么简单
Java访问权限就是这么简单
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java访问权限就是这么简单,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2958字,纯文字阅读大概需要5分钟。
内容图文
Java类的访问权限
Java类的访问权限有两种:
公共类和非公共类
使用public修饰的类为公共类,没有使用public修饰的类为非公共类。
公共类的应用场景
如果这个类想要在其他包中使用就定义为公共类
非公共类只能在当前包中使用
Java类成员的访问权限
访问权限 |
当前类 |
当前包 |
派生类(不在当前包中) |
其他包 |
私有的(private) |
可以 |
不 |
不 |
不 |
默认的(没有权限修饰符) |
可以 |
可以 |
不 |
不 |
受保护的(protected) |
可以 |
可以 |
可以 |
不 |
公共的(public) |
可以 |
可以 |
可以 |
可以 |
在定义类的成员时,遵循访问权限最小化的原则。
如果想在任意位置都可以使用,就定义为public公共的。
如果想在当前类和派生类中都可以直接使用,就定义为protected受保护的。
package com.bjpowernode.chapter01.demo02.p1;
public class Father {
private int xx = 10; //私有的, 只能在当前类中使用
int yy = 20; //默认的, 可以在当前包中使用
protected int zz = 30; //受保护的, 当前包/派生类中使用
public int oo = 40; //公共的, 任意位置
//在当前类中
public void m1() {
System.out.println( xx );
System.out.println( yy );
System.out.println( zz );
System.out.println( oo );
}
}
package com.bjpowernode.chapter01.demo02.p1;
/**
* 测试访问当前包中Father类的成员权限
* 在同一个包中,可以使用默认权限/受保护权限/公共权限的成员 ,不能使用私有成员
* @author Administrator
*
*/
public class Test {
public static void main(String[] args) {
//创建Father类的对象
Father f = new Father();
//访问f的实例成员
System.out.println(f.xx); //The field(字段/域) Father.xx is not visible(不可见), 没有访问权限
System.out.println(f.yy);
System.out.println(f.zz);
System.out.println(f.oo);
}
}
package com.bjpowernode.chapter01.demo02.p2;
import com.bjpowernode.chapter01.demo02.p1.Father;
/**
* 在p2包中, 测试访问p1包中Father类的成员权限
* 只能访问公共成员
* @author Administrator
*
*/
public class Test02 {
public static void main(String[] args) {
Father f = new Father();
//访问f的成员变量
System.out.println(f.xx); //The field(字段/域) Father.xx is not visible(不可见), 没有访问权限
System.out.println(f.yy);
System.out.println(f.zz);
System.out.println(f.oo);
}
}
package com.bjpowernode.chapter01.demo02.p3;
import com.bjpowernode.chapter01.demo02.p1.Father;
/**
* p3包中定义Son类, 继承p1包中的Father类
* 子类继承了父类, 就自动拥有了父类的实例变量与实例方法
* Son类从Father类继承了四个实例变量:xx,yy,zz,oo,和一个实例方法: m1()
* @author Administrator
*
*/
public class Son extends Father {
//Son类从Father类继承了四个实例变量:xx,yy,zz,oo
//子类的实例方法
//因为继承,所有自动拥有, 是否能够直接使用,跟访问权限有关
public void sm() {
System.out.println( xx );
System.out.println( yy );
System.out.println( zz ); //受保护的
System.out.println( oo );
}
}
Java方法覆盖中的访问权限
Java访问覆盖(重写)的规则:
● 子类方法签名必须和父类方法一致, 方法签名就是方法名与参数列表
● 子类方法的返回值类型可以和父类方法返回值类型一样, 也可以是父类方法返回值类型的子类型
● 子类方法的访问权限可以和父类方法访问权限相同,也可以比父类方法访问权限更宽泛(更大)
如果父类方法是public修饰,子类方法只能是public修饰
如果父类方法是protected修饰,子类方法可以protected/public修饰
● 子类方法的异常不能比父类方法的异常更大
内容总结
以上是互联网集市为您收集整理的Java访问权限就是这么简单全部内容,希望文章能够帮你解决Java访问权限就是这么简单所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。