在java中可以用来限定访问域的修饰符:public、protected、private、package。
定义为public的类,接口可以被任何其他类访问。
定义为public
的field
、method
可以被其他类访问,前提是首先有访问class
的权限
作用于继承关系,定义为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{
//...
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)