您的位置:首页 > 编程语言 > Java开发

java 内部类

2013-10-25 11:22 387 查看
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");

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: