java 内部类

来源:互联网 发布:大连淘宝模特 编辑:程序博客网 时间:2024/05/22 00:47

1、创建内部类对象

(1)通过外部类的方法返回内部类对象。

(2)通过外部类对象创建内部类对象。

2、内部类属性、方法与外部类同名时调用外部类的属性方法

(1)通过给内部类中传入外部类对象调用外部类属性、方法。

(2)直接用外部类名的方式调用外部类属性、方法。



package test;public class Out {private String name;public void doSomething(){System.out.println("out");}public Out(String name){this.name = name;}public In getIn(){//传入外部类对象给内部类,以便调用同名属性、方法return new In(this);}public class In{private String name;private Out out;public In(Out out){this.out = out;}public void doSomething(){System.out.println("in");}public String getOutName1() {Out.this.doSomething();return Out.this.name;}public String getOutName2(){out.doSomething();return out.name;}public String getOutName3(Out out){out.doSomething();return out.name;}public String getInName(){doSomething();return name;}}public static void main(String[] args) {/** * 实例化内部类的2种方法 */// 1、通过外部类的方法返回内部类的对象Out out = new Out("yym");In in = out.getIn();// 2、通过外部类对象创建内部类对象Out out1 = new Out("yym1");In in1 = out1.new In(out1);/** * 内部类属性、方法与外部类同名时, */// 1、将外部类对象传入内部类,通过外部类对象调用。System.out.println(in.getOutName2()+"\n");System.out.println(in.getOutName3(out1)+"\n");// 2、直接用外部类名.this.属性名调用。System.out.println(in1.getOutName1()+"\n");}}