不在同一个包中的.java
papackage Fifth;
public class SixQuanXian {
protected void Access1(){
System.out.println("protected");
}
public void Access2(){
System.out.println("public");
}
private void Access3(){
System.out.println("private");
}
void Access4(){
System.out.println("default");
}
}
package sixth;
import Fifth.SixQuanXian;
public class QuanXian {
public static void main(String[] args){
SixQuanXian s = new SixQuanXian();
s.Access2();//不在一个包中只有public可以被访问
//s.Access1();//protected
//s.Access3();//private
//s.Access4();//default
}
}
类的访问权限
package sixth;
class Connection {
private static int count = 0;
private Connection(){
count++;
}
//不希望类被访问可以将类的所有构造器都指定为private,从而阻止任何人创建该类的对象
//但可以在类的static成员内部创建该类的对象。
public static Connection makeConnection(){
return new Connection();
}
public int getCount() {
return count--;
}
}
public class ConnectionManager{
int countOfConnection = 4;
//Connection 类型的数组
Connection[] ca = new Connection[countOfConnection];
// 非静态实例初始化
{
for (int i = 0; i < countOfConnection; ++i) {
ca[i] = Connection.makeConnection();
}
}
public Connection getConnection(int i) {
if (i < countOfConnection) {
return ca[i];
} else {
return null;
}
}
public static void main(String[] args){
ConnectionManager c = new ConnectionManager();
//Connection c1 = new Connection();//the constructor Connection is not visible,不可以如此创建
for (int i = 0; i < c.countOfConnection + 1; ++i) {
Connection connection = c.getConnection(i);
if (connection != null) {
System.out.println("num = " + connection.getCount());
} else {
System.out.println("null");
}
}
}
}