900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【JAVA基础篇】访问权限

【JAVA基础篇】访问权限

时间:2024-01-28 16:32:52

相关推荐

【JAVA基础篇】访问权限

所谓访问权限,指的是本类的成员变量、成员方法和内部类对其他类的可见性。

四种访问权限

Java一共有四种访问权限,按照权限由大到小分别为public、protected、default和private,如果省略了访问修饰符,那访问权限就是defualt。四种访问权限的含义和权限控制见下面表格:

注意:所谓的访问,有两种方式,直接访问和通过对象访问。

实际情况跟表格有些出入,需要注意的点:在非本包子类,通过父类的对象实例只能访问父类的public成员,不能访问protected成员。

举例说明

基类SupClass

package .accessright;/*** * @描述: 父类* @版权: Copyright (c) * @作者: cc* @版本: 1.0 * @创建日期: 5月28日 * @创建时间: 上午11:02:06*/public class SupClass{public void publicMethod(){System.out.println("=============publicMethod=============");}protected void protectedMethod(){System.out.println("=========protectedMthod===========");}void defaultMethod(){System.out.println("=========defaultMethod========");}private void privateMethod(){System.out.println("=========privateMethod========");}}

子类SubClass

package .accessright.demo;import .accessright.SupClass;/*** * @描述: 与父类不同包的子类* @版权: Copyright (c) * @作者: cc* @版本: 1.0 * @创建日期: 5月28日 * @创建时间: 上午11:01:28*/public class SubClass extends SupClass{public static void main(String[] args){SupClass supClass = new SupClass();supClass.publicMethod();//子类通过父类对象能访问父类的public成员,其他访问级别的成员不能访问}public void subClassMethod1(){//子类可以直接访问父类的public、protected,其他访问级别的成员不能访问publicMethod();protectedMethod();}}

同包的类PackageClass

package .accessright;/*** * @描述: 同包的类* @版权: Copyright (c) * @作者: cc* @版本: 1.0 * @创建日期: 5月28日 * @创建时间: 上午11:04:14*/public class PackageClass{public static void main(String[] args){//通过对象访问public、protected和default方法,不能访问private级别的成员SupClass supClass = new SupClass();supClass.publicMethod();supClass.protectedMethod();supClass.defaultMethod();}}

其他

外部类访问权限只能是public或者default,但一个Java文件最多只能有一个public修饰的类,且文件名必须跟public修饰的类类名相同。当Java文件不存在public修饰的类时,文件名可以随意取。

接口的成员变量只能是public static final修饰的(可以省略),成员方法不同的JDK版本有差异:JDK1.6实测:成员方法只能是public abstract修饰的(可以省略);JDK1.8实测:成员方法只能是public修饰的(可以省略),另外还可以使用abstract, default, static和strictfp来修饰,其中abstract,default,static互斥,使用default或者static时必须提供方法的实现,strictfp不能单独使用,要配合default或者static一起使用。

重写或者实现方法时,访问权限必须比父类大。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。