下面是相代码一个是内部类的,一个是外部类的。
- class Outer
- {
- private int x = 3;
- class InnerFirst //这是一个成员内部类。 Static class Inner当静态内部类
- {
- {
- System.out.println("这是InnerFirst类的构造函数代码块");
- }
- void function()
- {
- System.out.println("innner:"+Outer.this.x);
- }
-
- void function(String str)
- {
-
- System.out.println("str");
- }
- }
- void method()
- {
- InnerFirst in = new InnerFirst();
- in.function();
- }
-
- void method2()
- {
- class InnerSecond //这是一个局部内部类
- {
- {
- System.out.println("这是InnerSecond类的构造函数代码块");
- }
- void function()
- {
- System.out.println("innner:"+Outer.this.x);
- }
-
- void function(String str)
- {
- System.out.println(str);
- }
- }
-
- new InnerSecond().function("hello");
- }
- }
- class InnerClassDemo
- {
- public static void main(String[] args)
- {
- Outer out = new Outer();
- out.method();
- out.method2();
- }
- }
复制代码 1、内部类中也有构造代码块。因为内部类也是类,是类就可以有多个构造函数,就可以提取共同的部分,形成构造函数代码块。2、创建对象调用内部类,此时如果类中有代码块的话,一定会运行构造代码块。而且无论构造代码块在程序中的任何位置,一定会先于其它函数执行。
|
|