public,protected,包访问权限,private这四个的访问权限是越来越小。
- public成员可以使得在其他包中访问
- protected成员可以在继承的类(即使这个类在其他包中)中访问,同时他也提供包访问权限,也就是说,相同包内的其他类可以访问protected元素
- 包访问权限就是只能在相同包中访问
- private成员只能在同一个类中访问
注意事项
1. 每个编译单元(文件)都只能有一个public类
2. public类的名称必须完全与含有该编译单元的文件名相匹配。
如果不希望其他任何人对该类拥有访问权限,可以把所有的构造器都指定为private,从而阻止任何人创建该类对象,但是有一个例外,就是你在该类的static成员内部可以创建
内部类就是在一个类中的类
内部类在外面的定义与使用方法(在类中和类的其他成员使用方法相同)
public class test {
public static void main(String[] args) {
ConnectionManager b = ConnectionManager.getACon();//先创建外部类对象
ConnectionManager.Connection a = b.new Connection();//通过外部类对象创建内部类对象
a.print();
}
}
class ConnectionManager{
//内部类Connection
class Connection{
void print()
{
System.out.println("hello world");
}
}
private ConnectionManager() {}//将构造器声明为私有这样只能通过static方法创建对象
//static方法,创建一个类对象
public static ConnectionManager getACon() {
return new ConnectionManager();
}
/*
这个类表明只能创建一个对象
class Group{
private Group() {}
private static Group ps1 = new Group();//静态成员
public static Group access() {
return ps1;
}
public void fi() {
System.out.println("hello world!");
}
}
*/