java当中如何区分匿名对象和匿名类

java当中如何区分匿名对象和匿名类

有没有匿名方法这种概念

学了几个月了,感觉自己还是新手状态,很多基本概念还不是很清楚

匿名对象:
Person类:
new Person(); 这就是一个匿名对象
匿名类:
new Person(){
String name;
};
这就是一个匿名类

简单说就是,匿名对象还是一个对象,它必须有已经写好的成员变量、属性、方法

匿名类,在声明它的对象的时候,才对它进行代码的构造(封装它的成员变量、属性、方法等)

匿名对象:一个对象只需要使用一次的时候,通常使用匿名对象

匿名类:比如我们需要一个监听类,并且在实例化这个监听类的时候才需要实现这个监听类内部的方法,那么使用匿名类就最方便了

java8的lambda表达式可以算匿名方法
匿名对象其实往往说的是匿名类,不是很严格。但是匿名对象本身也是存在的。比如

void foo(Car car) { ... }
调用
foo(new Car()); //此时传进去的参数,就是一个匿名的对象。
还有
Car[] cars = new Car[10];
cars[0] = new Car();
这里的Car也没有名字。