Java提供了public,private,protected三个访问权限修饰词,提供了一下四种访问权限控制机制:
1.包访问权限;
2.Public访问权限;
3.Private访问权限;
4.Protected访问权限;
1.包访问权限
包访问权限是Java为了便于程序开发而给定的一种权限选择。
当方法或域为给定访问权限限制符时,其默认具有该权限。具有该权限的方法和域成员,在包内是完全可见的(主语要与其对象依附在一起),而包外则不可见。这有点类似于C++中友元类,友元类间彼此可见,以简化访问。
由于Animal类和Test类都被打包在同一个Package下,Animal中的bark()方法为报访问权限,故对类Test可见。
对Java文件中的类也是如此,若未指定限制符,其默认为包访问权限,只能在包内被使用。包外是无法利用其生成对象的(不可见)。
注意:当决定一个类对包外可见的时候,除了要将类的访问限定符改为public以外,自定义的构造器限定符也必须修改为public,不然将导致外部不可见。
2.Public访问权限
当在方法或域前面显示的给定public限定符的时候,其具有该权限控制。
public权限是最为宽松的一种权限控制,对包内、外部都是完全可见的。
Java最多只允许一个Java文件中出现一个public类(该类向外提供接口,并与该Java文件中的名称完全一致)。
当一个Java文件中无一个public类时,表明其仅供包内使用,对外界不可见。
注意:类只有包访问权限和public访问权限两类。
3.Private访问权限
Private是访问限定最为严格的一种权限。
当方法或域为private权限时,表明其只针对该类的内部可见,类的外部(包括同一个包内的其他类)是不可见的。
4.Protected访问权限
Protected权限是一种严格程度介于public和private之间的权限,具有protected权限的方法和域只能对其自身和导出类可见。
在面向对象的设计当中,最常用的位public和private访问权限两种。
一般情况下将域定义为private,将方法定义为public。外界使用该类时,通过public方法使用其接口,而具体的域成员则对外部屏蔽,只能通过类提供的接口间接访问。
此处,age域对外部不可见,要想对其进行操作,必须使用Dog类提供的接口setAge(intnum)。
注意到setAge的方法体age=num+1;对用户给出的年龄加1了以后再修改了age的属性,这种修改对使用者是不可见的,有时又是非常必要的。
以上就是动力节点java培训机构的小编针对“编程入门学习,java的默认访问权限”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习