JAVA匿名类是什么,怎么用??

2025-05-22 10:10:22
推荐回答(5个)
回答1:

匿名类是一种特殊的内部类,它是在一个表达式内部包含一个完整的类定义。

内部类是在一个类的内部嵌套定义的类,它可以是其它类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义。

匿名类与其他类的不同就在于匿名,也就是没有名称。 

Java中允许创建子类对象时,除了使用父类的构造方法外,还可以用类体。 匿名类就是一个没有类申明的类体,因为没有名称,所有匿名类不可以申明对象,但却可以创建对象。   例如:

A是一个子类,那么下面的代码就是A的一个子类(匿名类)创建对象。   

new A(){    

匿名类的类体   

};    

由于匿名类是一个子类,所以和有一般子类的特征。可以继承父类的方法,同样也可以重写父类的方法。值得提醒的是,在使用匿名类时,一定是在某个类中直接用匿名类创建对象,因此匿名类必定是内部类,所以和其他匿名类一样可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以什么。   

static成员变量和static方法。   

尽管匿名类没有申明的步骤,但可以在创建匿名对象时返回一个引用赋值给匹配参数。   匿名类的常用方式是向方法的参数传值。   

具体方法如下:   

abstract class Speak{    
public abstract void speakHello();   
}    
class Student{   
void f(Speak sp){   
sp.speakHello();   
}   
}    
public class AnonymousClassDemo {   
public static void main(String[] args) {   
Speak speak = new Speak(){   
public void speakHello(){    
System.out.println("大家好,祝工作愉快!");   
}   
};    
speak.speakHello();    
Student st = new Student();   
st.f(new Speak(){    
public void speakHello(){    
System.out.println("I am a student, how are you");   
}   
});   
}   
}

上面代码的抽象类改成接口同样适用。

回答2:

匿名类顾名思义就是没有名字的类。
interface hello{
String start();
}
public class ok{
public String hello(){
return new hello(){ //这个个地方就是匿名类
String start(){ return "hello world"; }
}
}
}

回答3:

假如只创建这个类的一个对象,就不必为这个类命名,这种类就成为了匿名类。

这是一个例子,参考下

回答4:

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) { //这里为匿名类的定义
stopGame();
System.exit(0);
}
});

回答5:

  • 只使用对象一次,

  • 可以作为实际参数来传递,传递一个对象,里面就有不同的,属性方法可以调用。

    什么叫做匿名对象,就是指对象的名字没有,看不见。简称匿名。