黑马程序员技术交流社区
标题:
请问匿名类怎么写~
[打印本页]
作者:
a283398689
时间:
2013-9-28 13:09
标题:
请问匿名类怎么写~
自学视频上的匿名类 我一直不懂 。什么叫匿名类
怎么写法,。 有什么用
请哪位知道的告诉我
写出一个exam 给我看看 谢谢
作者:
血剑无痕
时间:
2013-9-28 14:46
匿名类:就是没有给这个类起名称只是使用一次public class exam { public static void main(String[] args) { new A().test(); } } class A { public void test() { System.err.println("start......."); } }希望对你有帮助
作者:
冯晓骏
时间:
2013-9-28 15:57
//匿名对象要实例化的接口
interface Head
{
void think();
}
//匿名对象要实例化的类
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public String toString()
{
return name+"("+age+")";
}
public void show()
{
System.out.println(toString());
}
/*private class Person_head implements head
{
void think()
{
System.out.println("Person thinking...");
}
}*/
public void function()
{
//此处为匿名内部类,他结合了创建类和创建对象于一体
//既创建了一个新的Education的子类,又new了一个这个子类的对象,而且这个对象是匿名的
new Head()
{
public void think()
{
System.out.println(Person.this.toString()+" thinking...");
}
}.think();
//此处为正常的内部类使用方法,就是被注释掉的代码部分
//所以匿名内部类代码简洁很多,用起来很方便
//Person_head ph = new Person_head();
//ph.think();
//注:匿名内部类的使用前提:必须是继承一个类或者实现接口,
// 因为创建的部分要由父类或者接口的名字来完成
// 匿名内部类要实现的方法最好不要超过3个,不然会很麻烦
}
}
class AnonymousDemo
{
public static void main(String args[])
{
AnonymousClassMethod_1();
AnonymousClassMethod_2();
}
//这应该是匿名对象的最初定义,即对象没有一个“名字”
public static void AnonymousClassMethod_1()
{
//此处是正常创建对象的方法,对象有一个对应的引用p,所以可以多次调用p
Person p = new Person("Sunny",2);
p.show();
p.show();
//此处是匿名对象,新建的对象没有与其对应的引用来接受他,所以只能调用一次
new Person("Sunny",2).show();
//注:一般对象的方法只调用一次时,可以使用匿名对象,也可将匿名对象作为参数传递给函数
}
public static void AnonymousClassMethod_2()
{
//用一个Person类的匿名对象调用function
//此处使用了匿名内部类,详见Person类中的function实现方法
new Person("Sunny",2).function();
}
}
复制代码
作者:
风悠悠
时间:
2013-10-1 01:44
匿名内部类:没有名字的内部类。就是内部类的简化形式。一般只用一次就可以用这种形式。
匿名内部类其实就是一个匿名子类对象。
想要定义匿名内部类:需要前提,内部类必须继承一个类或者实现接口。
匿名内部类的格式:new 父类名&接口名(){ 定义子类成员或者覆盖父类方法 }.方法。
匿名内部类的使用场景:
当函数的参数是接口类型引用时,如果接口中的方法不超过3个。可以通过匿名内部类来完成参数的传递。
其实就是在创建匿名内部类时,该类中的封装的方法不要过多,最好两个或者两个以内。
作者:
dolphin
时间:
2013-10-12 03:48
平时看到的new File(),这个就是一个常见的例子了,主要是在硬盘上开辟了空间,占用了内存,存储了一定的数据
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2