在java中可以用来限定访问域的修饰符:public、protected、private、package。
public定义为public的类,接口可以被任何其他类访问。
定义为public的field、method可以被其他类访问,前提是首先有访问class的权限
protected作用于继承关系,定义为protected的方法可由其子类和子类的子类调用。
private定义为private的field、method无法被其他类访问,确切地说,private访问权限被限定在class的内部,而且与方法声明顺序无关。
如果一个类内部还定义了嵌套类,那么,嵌套类拥有访问private的权限:
public class Main {
public static void main(String[] args) {
Inner i = new Inner();
i.hi();
}
// private方法:
private static void hello() {
System.out.println("private hello!");
}
// 静态内部类:
static class Inner {
public void hi() {
Main.hello();
}
}
}
package
包作用域是指一个类允许访问同一个package的没有public、private修饰的class,以及没有public、protected、private修饰的字段和方法。只要在同一个包,就可以访问package权限的class、field和method。
package abc
class Hello {
// package权限的方法:
void hi() {
}
}
class Main {
void foo() {
// 可以访问package权限的类:
Hello h = new Hello();
// 可以调用package权限的方法:
h.hi();
}
}
2.内部类
被定义在一个类内部的类被称为内部类,java的内部类分为好几种:成员内部类、静态内部类、局部(方法)内部类、匿名内部类。
public class Outer{
class Inner{
//...
}
}



