对于Java类的访问修饰符有public, 包级私有两种。
在项目pro下包和类的组织如下:
//pro
//mypack1
//Student.java
//Test.java
//mypack2
//Test.java
package mypack1;
class Student {
private int stuId;
private String stuName;
public Student(String stuName) {
this.stuName = stuName;
}
public int getStuId() {
return stuId;
}
public void setStuId(int stuId) {
this.stuId = stuId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
}
package mypack1; //和Student类在同一个包中
public class Test {
public static void main(String[] args) {
Student stu1 = new Student("A");
System.out.println("Id:" + stu1.getStuId() + " Name:" // 实例对象方法调用
+ stu1.getStuName());
}
}
尽管Student类使用默认修饰符号(包级私有),上面的代码是不会出错的,因为Test.jav和Student类在同一个包中,
Test能看到Student类的存在。但是如果是在mypack2包下Test,虽然代码完全一样,但是Student对它是不可见的,所以会报错。
我们平时在使用的String、System、InputStream等这些类肯定都是public型的,因为在我们自己的项目中,要去使用它们的类,如果把String设为包级私有,那么我们就无法使用了。
上面的Student类,我们把它改成public型,那么mypack2中的Test就能知道Student的存在,导入一下,就不会出现错误了。
分享到:
2011-08-21 21:21
浏览 2886
评论