A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 古银平 中级黑马   /  2012-5-20 14:37  /  2181 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

匿名对象和有名对象有什么不同,不太懂了。
以car类为例吧,有属性color和num,run()方法.初始化时:color=”green“;num=4;
new car.color="red";
new num=5;
new run();

5 个回复

倒序浏览
简单来说吧,匿名对象只能使用一次,而非匿名对象,可以多次被使用。
回复 使用道具 举报
本帖最后由 于潇 于 2012-5-20 14:58 编辑

匿名对象只在堆内存开辟空间,不存在栈内存的引用,使用一次后就等待垃圾回收机制回收。匿名对象在开发中多数作为其他类实例化对象的参数传递的。
回复 使用道具 举报
本帖最后由 袁錦泰 于 2012-5-20 15:25 编辑

我为你总结匿名对象的同时指出与有名对象的区别,并针对性纠正你的错误,如下:
|--匿名对象
    |--定义
        |--对象的简化形式
    |--特点
        |--调用属性无意义(color/num)
        |--调用方法(函数)有意义(run())
        |--如果对相关对象进行多个成员调用,必须为被调用对象命名-->区别
            |--如果你只有1辆汽车可以使用,5辆汽车必须为对象命名
                |--因使用匿名对象会new出多个对象,此时会对多个对象中的某个属性/方法分别进行初始化,并非对同一个对象进行初始化
        |--使用有局限性
    |--用法
        |--当对象方法仅进行一次调用-->区别:有名对象可以进行多次调用
            |--格式
                |--new 类名().方法名();
                    |--你的格式书写错误(抛开是否可以使用匿名对象,此处只为纠正你的格式错误)
                         |--new car.color="red";
                         |--new car.num=5;
                         |--new car.run();
        |--可以作为实际参数进行传递
            |--格式
                |--方法名.(new 类名());

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
匿名对象和有名对象有什么不同,不太懂了。
以car类为例吧,有属性color和num,run()方法.初始化时:color=”green“;num=4;




匿名对象和有名对象它们都是对象,最大区别是有名对象建立起了对该对象的引用。
new car.color="red";
    这句是:创建car类的一个实例对象,这个对象color设为red;但是没有返回引用,
    单单这句是没有什么实际意义的;
     new num=5;  
    这里想纠正下是没有这样写法的 应该是 new car.num=5;单单这句是没有什么实际意义的;
    但是如果有这样的需要:给一张carde 蓝图模型,生产时就可以
    使用到内部类如,Product  mycar = new product(new car());


评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 杨尧 于 2012-5-20 15:18 编辑

匿名对象和有名对象有什么不同,不太懂了。
匿名对象就是没有名字,创建对象的时候没有赋给一个引用,所以过后就不能再用他了,非匿名对象就可以多次使用
以car类为例吧,有属性color和num,run()方法.初始化时:color=”green“;num=4;
new car.color="red";//好像这样的写法是错误的吧~~~~~
new num=5;//好像这样的写法是错误的吧~~~~~
new run();//好像这样的写法是错误的吧~~~~~
属性跟方法前面不能用new吧!~~~
单单看你这3句话没有任何意思,因为你创建了一个新的对象,然后给他赋值,他是匿名的,过后你不能在用他了,没有任何意义

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马