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

 我来答
千锋教育
2015-10-09 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

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

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

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

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");   
}   
});   
}   
}

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

icosplay
推荐于2018-02-26 · TA获得超过248个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:149万
展开全部
匿名类顾名思义就是没有名字的类。
interface hello{
String start();
}
public class ok{
public String hello(){
return new hello(){ //这个个地方就是匿名类
String start(){ return "hello world"; }
}
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友58f062b
2012-04-23
知道答主
回答量:19
采纳率:0%
帮助的人:9.2万
展开全部

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

这是一个例子,参考下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanghl314
2012-04-23 · TA获得超过121个赞
知道答主
回答量:73
采纳率:0%
帮助的人:66.1万
展开全部
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) { //这里为匿名类的定义
stopGame();
System.exit(0);
}
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赵小刀556
2020-12-03 · 超过17用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:5.7万
展开全部
  • 只使用对象一次,

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式