对java中匿名对象和匿名类的简单理解

一、匿名对象

 匿名对象:没有名字的对象

匿名对象的特征:
      语法上: 只创建对象,但是不用变量来接收

      匿名对象的使用:
             1.匿名对象也是一个对象,具有对象的所有功能
             2.每一次使用匿名对象时,都是一个新的对象, 每次创建匿名对象都是不同的对象,一个匿名对象,只能使用一次,即匿名对象只能调用一次

 

      匿名对象只在堆内存中开辟空间,而不存在栈内存的引用

eg:

public class NiMingObject {

    public static void main(String[] args) {
        //1.非匿名对象(正常的对象)
        Dog d = new Dog();
        
        d.setAge(10);
        d.setName("来福");
        
        //d.eat();
        System.out.println(d.getAge()+"..."+d.getName());
        
        //2.匿名对象
        new Dog();
        
        //3.匿名对象的使用
        new Dog().setAge(18);
        new Dog().setName("旺财");
        
        System.out.println(new Dog().getAge()+"..."+new Dog().getName());
        //new Dog().eat();
    }

}

 

二、匿名类(匿名内部类)

如果要执行的任务需要一个对象,但却不值得创建全新的对象(原因可能是所需的类过于简单,或者是由于它只在一个方法内部使用),匿名类就显得非常有用

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

 

    public static void test01(){
        //使用匿名内部类快速 创建 AbstractAnimal抽象类的子类对象
        //第一种方式
        new AbstractAnimal(){

            @Override
            public void eat() {
                System.out.println("吃");
            }

            @Override
            public void sleep() {
                System.out.println("睡");
            }
            
            
        };
        //第二种
        new AbstractAnimal(){
            public void eat() {
                System.out.println(".....");
            }
            @Override
            public void sleep() {
                System.out.println("!!!");
            }
        }.sleep();
        //第三种
        AbstractAnimal an1 =  new AbstractAnimal(){

            @Override
            public void eat() {
                System.out.println("吃吃吃");
            }

            @Override
            public void sleep() {
                System.out.println("睡睡睡");
            }
            
        };
        
        an1.eat();
        an1.sleep();
    }

}

 

转载于:https://www.cnblogs.com/txbblog/p/10364558.html

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java面向对象的相关知识点包括以下几个方面: 1. 对象的概念:Java对象是一种特殊的变量,除了可以存储数据外,还可以对自身进行操作。每个对象都有自己的状态特征(属性)和行为特征(方法)。 2. 类和对象的关系:类是对象的模板,对象是类的实例。通过定义类,可以创建多个对象来表示现实生活的事物。 3. 方法的调用:通过对象名加点操作符来调用类的方法。例如,对象.方法(实际参数列表)。 4. 匿名对象匿名对象是没有对象名称的对象,它只能使用一次,然后被垃圾回收。可以通过匿名对象的方式完成一次性的操作。 5. 内部类:Java的内部类是定义在其他类内部的类。内部类可以访问外部类的成员,包括私有成员。 6. 包装类:Java的包装类是用来将基本数据类型转换为对象的类。包装类提供了一些方法来操作基本数据类型。 以上是Java面向对象的一些基本知识点。通过理解和掌握这些知识,可以更好地使用Java进行面向对象的编程。 #### 引用[.reference_title] - *1* *2* *3* [Java面向对象(知识点整理)](https://blog.csdn.net/yang642019851/article/details/113928312)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值