1.包(库单元),包内包含有一组类,他们在单一的名字空间下被组织到了一起,按照惯例,package的第一部分是类的创建者的反顺序的Internet域名。因为internet域名是唯一的不会和别人的冲突。java编译过后,程序运行并且需要加载.class文件的时候,他就可以确定.class文件在目录上所处的位置(java解析器获取包的名称,根据包名将"."根据不同的操作系统置换为/或者\,加上CLASSPATH环境变量就得到了完整的路径)。
2.private
注意:子类不能直接使用和读取父类的private数据,要通过父类提供的public access方法,即getter和setter。因为User类中的构造器是private的,继承的时候子类会自动调用父类的无参构造函数,但此函数又不存在,子类会报错( Implicit super constructor SuperClass() is undefined for default constructor. Must define an explicit constructor),所以这里的User类不能被继承。
2.private
//User类:
public class User {
private String uname;
private User() {
}
static User makeUser(String name)
{
return new User(name);
}
private User(String uname) {
this.uname = uname;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
}
//main:
public static void main(String[] args) {
User u =User.makeUser("rose");
//User对象中的构造方法是私有的
//必须通过调用makeUser的静态方法来达到创建User对象的目的
}
注意:子类不能直接使用和读取父类的private数据,要通过父类提供的public access方法,即getter和setter。因为User类中的构造器是private的,继承的时候子类会自动调用父类的无参构造函数,但此函数又不存在,子类会报错( Implicit super constructor SuperClass() is undefined for default constructor. Must define an explicit constructor),所以这里的User类不能被继承。