JAVA基础培训(3),认识类的访问权限描述符

我们熟悉一下类的访问权限描述符,public和默认不写的情况。 类没有private类型 。

我们先注意一下目录结构,我们建了一个otherpackage子目录,用来存放非同一目录 的类

先看我们的主文件

lession3/Lession3.java

package lession3;// 注意,我们使用了其它package的类,所以需要import进来// 注意:路径必须为完整的路径import lession3.otherpackage.PublicClassOtherPackage;/*** 老紫竹JAVA基础培训(3),认识类的访问权限描述符.* 原则:* public的类,可以被任何类在任何地方访问* 默认权限的类(也就是没写任何访问描述符的类)只能在当前package访问, * 不能被其它package的类访问。** @**/public class Lession3 { public static void main(String[] args) {  // 调用同一package下的public访问权限类  System.out.println(new PublicClassSamePackage().toString());  // 调用同一package下的默认访问权限类  System.out.println(new DefaultClassSamePackage().toString());  // 调用不同package下的public访问权限类  System.out.println(new PublicClassOtherPackage().toString());  // 调用不同package下的默认访问权限类  // System.out.println(new DefaultClassOtherPackage().toString()); }}

同一个目录下面的2个java文件

lession3/PublicClassSamePackage.java

package lession3;/*** 相同package的公开访问权限类。** @**/public class PublicClassSamePackage { public String toString() {  return "相同package的公开类"; }}

lession3/DefaultClassSamePackage.java

package lession3;/*** 相同package的默认访问权限类。** @**/class DefaultClassSamePackage { public String toString() {  return "相同package的默认类"; }}

我们的子目录里面的2个不同package的类

lession3/otherpackage/PublicClassOtherPackage.java

package lession3.otherpackage;/*** 其它package的公开访问权限类。** @**/public class PublicClassOtherPackage { public String toString() {  return "其它package的公开类"; }}

lession3/otherpackage/DefaultClassOtherPackage.java

package lession3.otherpackage;/*** 不同package的默认访问权限类。** @**/class DefaultClassOtherPackage { public String toString() {  return " 不同package的默认类"; }}

我们先看一下运行结果

相同package的公开类

相同package的默认类

其它package的公开类

下面,我们尝试

1 调用不同package下的默认访问权限类,我们把Lession3.java里面的被注释掉的代 码恢复,看看编译错误

2 尝试把前面这个不能访问的类(DefaultClassOtherPackage)改成 public 类,看看编 译结果和运行结果

3 尝试把当前package的 PublicClassOtherPackage 的public去掉,看看编译和运行 结果

4 尝试在当前package增加其它的类,并在 Lession3里面使用,看看编译和运行结果

5 尝试在otherpackage里面增加其它的类,并在 Lession3里面使用,看看编译和运行 结果

6 自己新建一个package,尝试在里增加其它的类,并在 Lession3里面使用(注意 import部分必须添加),看看编译和运行结果

总结:

一个类如果想直接访问另一个单独的类,有2种情况

1 和自己在一个package下面,无论其是否为public

2 和自己不在一个package下面,且必须为public

呼唤你前往另一个地方,过上另一种生活。

JAVA基础培训(3),认识类的访问权限描述符

相关文章:

你感兴趣的文章:

标签云: