匿名对象java
‘壹’ java中字符串也是个匿名对象(新手求解释)
1,匿名对象是没有名字的对象,直接new出来的,比如new Demo();
2,字符串比较特殊,java每一个字符都是String类的对象,虽然你没有创建实例,但是确能调用方法,
3,比如,String s = “hello”;s.isEmpty();这里就没有创建对象,却可以调用方法,
‘贰’ Java中,匿名对象使用场景:
1:当对方法只进行一次调用的时候,可以使用匿名对象。
2:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。
‘叁’ JAVA里什么是匿名对象
匿名类?就是没有指定名称的类,匿名内部类有利于编写事件处理程序。
写了个简单的小程序,希望对你有所帮助
import java.awt.*;
import java.awt.event.*;
class Test extends Frame
{
public Test()
{
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
setSize(300,300);
setVisible(true);
}
public static void main(String args[])
{
new Test();
}
};
点击右上边关闭按钮,会关闭窗体,用内部类实现的
‘肆’ java当中如何区分匿名对象和匿名类
下面给你具体介绍一下匿名对象和匿名类:
一、匿名对象
匿名对象是没有名字的实体,也就是该实体没有对应的变量名引用
匿名对象的特征:
创建的匿名类的对象只能够调用一次
匿名对象只在堆内存中开辟空间,而不存在栈内存的引用
每次创建匿名对象都是不同的对象
二、匿名类
匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。匿名类相当于在定义类的同时再新建这个类的实例
定义匿名内部类的格式如下:
new 父类构造器(参数列表)|实现接口()
{
//匿名内部类的类体部分
}
匿名类特点:
它必须继承一个类或者实现一个接口,而不能显示的使用extends或者implements,没有父类。
匿名类没有构造方法。通过new<父类名> 创建对象,匿名类定义与创建对象是同时进行的。
匿名类只能一次性的创建,并有父类句柄持有。
匿名类不需要初始化,只有默认的构造方法
三、匿名对象和匿名类区别
1.匿名对象还是一个对象,它必须有已经写好的成员变量、属性、方法
2.匿名类,在声明它的对象的时候,才对它进行代码的构造(封装它的成员变量、属性、方法等)
3.匿名对象:一个对象只需要使用一次的时候,通常使用匿名对象
4.匿名类:比如我们需要一个监听类,并且在实例化这个监听类的时候才需要实现这个监听类内部的方法,那么使用匿名类就最方便了
‘伍’ java中匿名对象是什么东西怎样理解匿名对象什么时候用
比如我要保存一个用户对象
User{
public int id;
public String name;
}
save(对象User)
一般情况就是
User user1 = new User();
user1.id = 1;
user1.name="name";
save(user1);
但这个user1只是在save前使用,之后就没用了,那么就可以这样
save(new User(1,"name");
这样直接保存,不用创建user1
没有名字
‘陆’ Java中匿名对象是什么意思啊
匿名对象使用方法一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。
如果对一个对象进行多个成员的调用,就必须给这个对象起个名字。
匿名对象使用方法二:可以将匿名对象作为实际参数进行传递。
如下代码所示:
classPerson{
privateStringname;
privateintage;
publicPerson(){
}
publicPerson(Stringname){
this.name=name;
}
publicPerson(Stringname,intage){
this.setName(name);
this.setAge(age);
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetName(){
returnthis.name;
}
publicvoidsetAge(intage){
if(age>0&&age<140){
this.age=age;
}
}
publicintgetAge(){
returnthis.age;
}
publicvoidtell(){
System.out.println("姓名:"+this.getName()+",年龄:"+this.getAge());
}
}
publicclassTest{
publicstaticvoidmain(Stringargs[]){
newPerson("张三",46).tell();//通过匿名对象调用方法
}
}
‘柒’ java中匿名对象的好处
先要知道对象可以用来干什么?起码可以传来传去,用于多个类的交互使用。而匿名对象就不用,这种方式说明只要我用就只能用一次,不能重复使用。可以理解为专属对象(不知道这种说法是否正确)。
‘捌’ java中什么是匿名对象谢谢!
普通申明一个对象是这样的
A a = new A();
那么这个时候a就是类A的一个对象,这个对象名字就是a
再来看下面一个例子:
method(A a);
整理method是一个方法,他需要传递一个对象来作为参数,那么这个时候有2种方法:
方法1:
A a =new A();
method (a);
方法2:
method (new A());
方法2中new A()就是一个匿名对象,他没有名字。这样可以理解了吧。