本文共 1760 字,大约阅读时间需要 5 分钟。
-- Start
public class Test { public static void main(String[] args) throws Exception { Outer o = new Outer("尚波"); // 要想实例化内部类, 首先必须得到外部类对象 Outer.Inner i = o.new Inner(); // 用特殊的 new 语法来构造内部类对象 System.out.println(i.getName()); // 调用内部类的方法 }}class Outer { private String name; Outer(String name) { this.name = name; } class Inner { String getName() { return name; // 内部类可以访问外部类的域 } }}
public class Test { public static void main(String[] args) throws Exception { Outer.Inner i = new Outer.Inner("尚波"); // 静态内部类只和外部类关联, 和外部类对象没有关系,所以不需要实例化外部类对象 System.out.println(i.getName()); }}class Outer { static class Inner { private String name; Inner(String name) { this.name = name; } String getName() { return name; } }}
public class Test { public static void main(String[] args) throws Exception { Outer o = new Outer(); o.print("尚波"); }}class Outer { Outer() { } void print(final String name) { // 为了使内部类的方法可以访问 name, name 必须定义为 final // 定义内部类 class Inner { void print() { System.out.println(name); } } // 实例化内部类 Inner i = new Inner(); // 调用内部类的方法 i.print(); }}
public class Test { public static void main(String[] args) throws Exception { Outer o = new Outer(); o.print("尚波"); }}class Outer { Outer() { } void print(final String name) { // 为了使匿名内部类的方法可以访问 name, name 必须定义为 final // 定义及实例化匿名内部类, 由于匿名内部类没有名字, 所以在定义的同时必须实例化 Printer p = new Printer() { public void print() { System.out.println(name); } }; // 调用匿名内部类的方法 p.print(); }}interface Printer { void print();}--- 更多参见: -- 声 明:转载请注明出处 -- Last Updated on 2012-05-25 -- Written by ShangBo on 2012-05-25 -- End