黑马程序员技术交流社区
标题:
问题
[打印本页]
作者:
vipzh
时间:
2012-12-3 14:32
标题:
问题
内部类的实现方式可以说下吗?
作者:
xjandrew
时间:
2012-12-3 14:49
class privateOuter
{
private String name;
//内部类
private class Inner
{
//定义内部方法
void function(String name)
{
//修改外部类中的属性
privateOuter.this.name = name;
//调用外部类中的方法
show();
}
}
//创建内部类
public void makeInner()
{
Inner in = new Inner();
//调用内部方法
in.function("zhangsan");
}
private void show()
{
System.out.println(name);
}
}
class Test
{
public static void main(String[] args)
{
new privateOuter().makeInner();
}
}
直接看代码你能明白不?
作者:
黑马_张伟
时间:
2012-12-3 15:24
http://zagwibh.blog.163.com/blog/static/2141740202012103095343599/,我正好整理了一个内部类的有关知识。你可以看下,希望能对你有帮助
作者:
付莹
时间:
2012-12-3 15:50
匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接
口(可以是多个),实现其方法。下面通过代码来说明:
public class TestAnonymousInterClass{
public static void main(String args[]){
TestAnonymousInterClass test=new TestAnonymousInterClass();
test.show();
}
//在这个方法中构造了一个匿名内部类
private void show(){
Out anonyInter=new Out(){// 获取匿名内部类实例
void show(){//重写父类的方法
System.out.println("this is Anonymous InterClass showing.");
}
};
anonyInter.show();// 调用其方法
}
}
// 这是一个已经存在的类,匿名内部类通过重写其方法,将会获得另外的实现
class Out{
void show(){
System.out.println("this is Out showing.");
}
}
程序运行的输出结果为:
this is Anonymous InterClass showing.
匿名内部类有了自己的实现。
接口的方式,只要把父类换成接口就行了,没必要给出代码了。
使用匿名内部类时我们不要忘了我们的目的,我们只是在这地方想对某个类有特殊的
实现。在匿名内部类中编写的自己的方法是不可见的。匿名内部类就是重写父类或接口
的方法。
匿名内部类是没有名字的,所以我们没办法获得其类型,而只能把它当作超类或接口
类型来使用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2