黑马程序员技术交流社区
标题:
怎样创建匿名内部类?
[打印本页]
作者:
草上飞
时间:
2012-10-21 21:43
标题:
怎样创建匿名内部类?
怎样创建匿名内部类?
作者:
鲁中需
时间:
2012-10-21 21:56
1.什么时候用到匿名内部类:
只用到类的一个实例。
类在定义后马上用到。
类非常小(SUN推荐是在4行代码以下)
给类命名并不会导致你的代码更容易被理解
2.如何创建内部类
匿名内部类不能有构造方法。
匿名内部类不能定义任何静态成员、方法和类。
匿名内部类不能是public,protected,private,static。
只能创建匿名内部类的一个实例。
一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
作者:
王健宇
时间:
2012-10-21 22:11
interface A{
public void println();
}
class X{
public void fun1(){
this.fun2(
new A(){
public void println(){
System.out.print("hello world");
}
}
);
}
public void fun2(A a){
a.println();
}
}
public class Nolnner {
public static void main(String args[]){
new X().fun1();
}
}
红色的部分定义了一个匿名内部类?希望对你有所帮助
作者:
张其辉
时间:
2012-10-21 22:16
匿名内部类必须有个前提:内部类必须继承或实现一个外部接口或类。
格式:new 父类或接口 (){子类内容}
例:abstract class demo
{
abstract void show();
}
class Outer
{
int num=1;
class Inner extends demo
{
void show(){System.out.println(num);}
}
public void method(){new Inner().show();}//上面写的代码不是匿名的写法
/*下面为匿名写法
new demo() {
public void show()
{
System.out.println(num);
}
}这其实就是一个有点胖的对象而已
*/
}希望对你有用
作者:
﹏゛心被伱牵
时间:
2012-10-22 09:19
匿名内部类有个前提:内部类必须继承或实现一个外部接口或类。或者该匿名内部类只使用一次。
new Thread()
{
public void run()
{
for(int x=0; x<100; x++)
{
System.out.println(Thread.currentThread().getName()+"....."+x);
}
}
}.start(); 这就是匿名内部类对象,只使用一次的情况。
for(int x=0; x<100; x++)
{
System.out.println(Thread.currentThread().getName()+"....."+x);
}
Runnable r = new Runnable()
{
public void run()
{
for(int x=0; x<100; x++)
{
System.out.println(Thread.currentThread().getName()+"....."+x);
}
}
};
new Thread(r).start(); 通过实现Runnable接口来实现匿名内部类
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2