概述
除了公共访问级别外,针对类还有默认访问控制级别,在上面的例子中已经使用到,当在类定义时前面什么都不写就是默认访问级别。如果一个类的资源仅允许在包内访问,则可以将该类定义为默认访问级别。下面的图中说明了默认访问级别与公共访问级别间的区别。
上图中描述了两个包,包A和包B,包A包含了三个类A,B和C,包B包含两个类D和E,详细说明如下:
包A和包B是相互间独立的两个包
包A包含了三个类,即A、B和C
包A是公共访问级别,B类和C类都是默认访问级别
包B包含了两个类,即D和E
D类是公共访问级别,E类是默认访问级别
A类和D类对于其他几个类都是可见的
B类对于A类和C类是可见的,但是对于处于包B中的D类和E类是不可见的
C类对于A类和B类是可见的,但是对于处于包B中的D类和E类是不可见的
E类对于D类是可见的,但是对于处于包A中的A类、B类和C类都是不可见的
下面的例子在com.zmxlh.demo中定义了两个类,一个是公共访问级别的,另一个是默认访问级别的。
(1)首先定义默认访问级别的B类,如下所示:
package com.zmxlh.demo;
public class B {
private String s;
public B(String s) {
this.s = s;
}
public void printB(){
System.out.println("Default Class B Printing...");
System.out.println(s);
}
}
B类定义为默认访问级别的,声明了一个成员变量和一个方法,详细说明如下:
使用package关键字声明B类属于com.zmxlh.demo包
class B前没有package关键字,声明B类为默认访问级别
声明String类型的成员变量s
构造函数通过将输入的字符串赋值给成员变量来生成对象
B类定义了方法printB(),该方法包含两条语句,首先输出“Default Class B Printing....”,接着输出成员变量s的值
(2)下面定义公共访问级别的A类
代码如下:
package com.zmxlh.demo;
public class A {
private B b;
public A(String s){
b = new B(s);
}
public void printA(){
System.out.println("Public Class A Printing...");
b.printB();
}
}
A类定义为公共访问级别,同样也声明了一个成员变量和一个方法,详细说明如下:
使用package关键字声明A类属于com.zmxlh.demo包
class A前有public关键词,声明A类为公共访问级别
声明B类型的成员变量b
A类定义了方法printA(),该方法包含两条语句,首先输出“Public Class A Printing....”,接着调用成员变量b的方法printB()。
(3)在默认包定义DefaultClassDemo类,引入A类的相关资源,如下所示。
package Default;
import com.zmxlh.demo.*;
public class DefaultClassDemo {
public static void main(String args[]){
A a;//定义对象引用变量
a=new A("Public Class A");//生成对象
a.printA();//调用方法
}
}
上面定义的DefaultClassDemo类,导入了com.zmxlh.demo包下的A类,并生成了A类实例a,调用其相应的方法,详细说明如下:
使用import关键字导入了com.zmxlh.demo包下的A类
使用new A("Public Class A")生成了对象
使用对象引用变量调用了printA()方法
最终在Eclipse中执行程序,得到下面的显示结果:
最后
以上就是难过往事为你收集整理的java默认访问_"Java中的访问控制符"之默认访问级别的全部内容,希望文章能够帮你解决java默认访问_"Java中的访问控制符"之默认访问级别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复