欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
六、静态内部类
静态内部类是static class型的内部类,这种内部类特点是:它不能访问外部类的非静态成员。要创建静态内部类对象时候,也不需要外部类对象了,直接可以:
new 外部类名.内部类构造方法
来创建,给个例子:
/**
* 静态内部类
*
* @author leizhimin 2009-7-17 16:53:05
*/
public class Outer {
public static int i =500;
protected static class Inner {
int i =100;
String name;
Inner(String name) {
this.name = name;
}
void sayHello() {
System.out.println(“Hello ” + name);
Outer.i++;
}
}
public Inner genInner(String name) {
return new Inner(name);
}
}
class Test {
public static void main(String[] args) {
Outer.Inner in1 = new Outer.Inner(“1111”);
in1.sayHello();
System.out.println(Outer.i);
Outer.Inner in2 = new Outer().genInner(“2222”);
in2.sayHello();
System.out.println(Outer.i);
}
}
运行结果:
Hello 1111
501
Hello 2222
502
Process finished with exit code 0
七、接口内部类
接口内部类自动都是public static的,相当于为接口定义了一种变量类型,这在java的设计中就有使用,比如在HashMap中,就有:
static class Entry implements Map.Entry
下面我给个例子,
/**
* 接口内部类
*
* @author leizhimin 2009-7-17 17:20:28
*/
public interface AInterface {
void readme();
class Inner1 implements AInterface {
public void readme() {
System.out.println(“我是一个接口内部类”);
}
}
}
class Main {
public static void main(String[] args) {
AInterface.Inner1 in1 = new AInterface.Inner1();
in1.readme();
}
}
[1][2][3][4]
要做一个积极勇敢乐观的追梦人,永远不说消极的话,