Android应用编程基础第24篇:Java语言中访问权限
Android应用编程基础第24篇:Java语言中访问权限
在上篇内容中,我们已对Java的四种访问级别进行了探讨,它们分别是private、default、protected以及public。接下来,本文将通过具体实例向大家展示这四种访问权限的实际应用方式。
我们先定义一个包含这四种访问权限的方法的类:
范例:Person.java
01 packagedemo.java;
02
[id_1713871604]
public方法名为talkPublic的字符串类型函数
返回 "人物 —— >>进行公开谈话()";
06 }
07
确保 String 类型的 talkProtected 方法得以保护。
返回"执行保护性对话方法—— Person.talkProtected()"。
10 }
11
12 String talkDefault() {
返回"该人物 —— 执行默认的交谈方法()"。
14 }
15
定义一个名为talkPrivate的私有方法,该方法返回一个字符串。
返回"该人物执行私密交谈操作";
18 }
19 }
程序说明:
1)Person类在demo.java包中。
2)第04~06行是加public访问权限的方法。
3)第08~10行是加protected访问权限的方法。
4)第12~14行是默认访问权限的方法。
5)第16~18行是加private访问权限的方法。
然后我们举例以下四种情况:
鉴于同一类别中的所有访问权限方法均可相互调用,故此情形下的具体说明予以省略。
1.同一个包中的类:
范例:Student.java
01 packagedemo.java;
02
03 publicclass Student {
04 void doTalk(){
输出:newPerson对象调用的talkPublic方法执行后的结果
输出:newPerson()方法创建的对象调用talkProtected()方法后的结果。
输出:newPerson对象调用的talkDefault方法返回的结果
在尝试输出新创建的人物实例的私聊对话时Android应用编程基础第24篇:Java语言中访问权限,程序出现了编译错误,因为调用newPerson()方法并执行talkPrivate()方法这一行代码存在问题。
09 }
10 }
程序说明:
采用私有访问级别定义的方法,不允许被同属一个包的其他类所访问。在代码的第08行,由于这一行尝试调用了Person类中私有访问权限的方法,导致编译时出现了错误。因此,我们对该行代码进行了注释处理。
第5至7行所使用的分别是带有public、protected和默认访问权限的方法,在同一个包内部Android应用编程基础第24篇:Java语言中访问权限,这些方法的使用是顺畅无阻的。
2.同一个包中的子类与1中结果类似,不做赘述了。
3.不同包中的子类:
范例:Student1.java
01 packagedemo.java.a;
02
03 importdemo.java.Person;
04
05 公共类Student1继承自Person类,{
06 void doTalk() {
执行打印操作,输出super对象调用talkPublic方法的结果。
输出:super.talkProtected()方法的结果
编译时出现错误,因为执行了System.out.println(super.talkDefault());这行代码。
10 }
11 }
程序说明:
Student1这个类位于demo.java.a这个包内,并且它继承了Person类。Person类则位于demo.java这个包中protected java,它是Person类的子类,但与Student1类不在同一个包中。
在第7和第8行,我们采用了调用父类方法的super.method()方法。
第09行代码设定了默认的访问权限规则,但因为Student1.java文件并未放置在与父类相同的包中,所以无法直接访问那些被父类以默认访问权限定义的方法。在编译过程中,这一差异会导致错误信息的出现。
4.其他包中的类:
范例:Student2.java
01 packagedemo.java.b;
02
03 importdemo.java.Person;
04
05 publicclass Student2 {
06 void doTalk() {
输出:newPerson对象调用的talkPublic方法执行后的结果
尝试执行代码时,发现输出语句中调用了未经公开访问修饰符保护的构造函数newPerson()的talkProtected()方法protected java,导致编译过程中出现了错误。
尝试输出newPerson对象默认的谈话方法时,程序出现了编译错误。
10 }
11 }
程序说明:
Student2这一类别被放置在demo.java.b这个包内,它与Person类别分属不同的包结构。
在第08和09行代码中,由于Student2类未能成功访问到Person类中定义为protected或默认访问权限的方法protected java,导致编译过程中出现了错误提示。
3)第07行,加public访问权限的方法可以正常调用。
通过刚才的几个案例,我相信大家对访问权限的概念已经有了更为深入的认识。今天的内容就到这里,感谢大家的聆听!
----------
- 随机文章
- 热门文章
- 热评文章