一概述: 没有名字的对象, 或者说是没有赋值给任何变量的对象匿名对象是指创建对象时, 只有创建对象的语句 (new 对象类型), 没有接收这个对象的变量
例如:
Person 类:
- public class Person {
- public void eat(){
- System.out.println("吃饭");
- }
- }
测试类
- public class Test {
- public static void main(String[] args){
- // 创建一个普通对象
- Person person1 = new Person();
- // 创建一个匿名对象
- new Person();
- }
- }
二匿名对象的特点和使用
1 创建匿名对象直接使用, 没有变量名
new Person().eat();// 创建匿名对象, 调用 eat() 方法
2 匿名对象只能用一次
- new Person().eat();// 创建匿名对象, 调用 eat() 方法
- new Person().eat();// 再次调用 eat() 方法, 再次创建匿名对象
3 匿名对象可以作为方法返回值和方法接收的参数使用
- class Demo {
- public static Person getPerson(){
- // 普通方式
- //Person p = new Person();
- //return p;
- // 匿名对象作为方法返回值
- return new Person();
- }
- public static void method(Person p){}
- }
- class Test {
- public static void main(String[] args) {
- // 调用 getPerson 方法, 得到一个 Person 对象
- Person person = Demo.getPerson();
- // 调用 method 方法
- Demo.method(person);
- // 匿名对象作为方法接收的参数
- Demo.method(new Person());
- }
- }
总而言之, 匿名对象相当于一个一次性的对象
来源: http://www.bubuko.com/infodetail-2547430.html