public\protected\default\private
类成员权限
不能用访问权限修饰方法中声明的变量和形式参数(方法中的的作用域只是方法中),方法外不可见。
类权限
default和public(没有protected和private)
同package
//主程序
public class welcome{
public static void main(String[] args){
System.out.println(new testSamePackage().toString());
}
}
//同一个包内
class testSamePackage {
public String toString() {
return "same package default";
}
}
//输出结果same package default
public class testSamePackage {
public String toString() {
return "same package public";
}
}
//输出same package public
不同package
import otherPackage.otherPackageDefault;
public class welcome{
public static void main(String[] args){
System.out.println(new otherPackageDefault().toString());
}
}
//包外public
package otherPackage;
public class otherPackageDefault {
public String toString() {
return "other package public";
}
}
//输出other package public
包外的otherPackageDefault权限改成默认会报错
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
otherPackageDefault cannot be resolved to a type
总结
类想要直接访问满足:
- 和自己在一个package中,无论是否为public
- 不在一个package中,必须public