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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁秋瑜 中级黑马   /  2013-5-27 20:18  /  1641 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

匿名对象是否可以调用属性?解释一下可行性?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

9 个回复

正序浏览
本帖最后由 山鹰 于 2013-5-31 09:07 编辑
  1. public class Car {
  2.         String colour;
  3.         int num ;
  4.         
  5.         public Car(){//无参构造
  6.                
  7.         }
  8.          public Car(String colour, int num) { //有参构造
  9.                 this.colour = colour;
  10.                 this.num = num;
  11.         }
  12.         void show()               
  13.         {        System.out.println(colour+"--->"+num);
  14.         }
  15.         void mathod(Car c){
  16.                 System.out.println(colour+"--->"+num);
  17.                
  18.         }
  19. }

  20. public class CarDemo {
  21.         public static void main(String[] args) {
  22.         
  23.          new Car().num = 4;//匿名对象调用变量,如果变量是私有的不可以直接调用
  24.          new Car().show();//匿名对象可以调用方法
  25.                
  26.                 Car c1 = new Car("red",4);//调用有参
  27.                  c1.mathod(new Car());//匿名对象作为参数值进行传递         
  28.         }        
  29. }
复制代码
匿名对象的使用方式是:当对对象的方法值调用一次时,使用匿名对象:
也可以将匿名对象作为实际参数进行传递
如果一个对象对多个成员进行调用时必须new新对象

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
如果问题以解决,请修改分类。谢谢合作
回复 使用道具 举报
楼主你好,如果帖子没问题了,那么请把帖子的类型改为“已解决”。如果不会改,请看我的个性签名
回复 使用道具 举报
首先你要理解什么是匿名对象!
匿名对象是当对方法调用一次时才使用,可以当实际参数进行传递!

method(new Cat());
回复 使用道具 举报
陈潜 发表于 2013-5-27 22:47
个人理解。。。
首先匿名对象是肯定可以调用属性的,因为属性是对象自己内部的,自己为什么不能调用自己的 ...

匿名对象都是在别的类里使用 啊,如果属性是私有的,别的类是没法使用的。
回复 使用道具 举报
个人理解。。。
首先匿名对象是肯定可以调用属性的,因为属性是对象自己内部的,自己为什么不能调用自己的东西呢?就算是在private也可以吧?
其次,使用匿名对象的情况:在个人用匿名对象的时候,好像一般都是只使用一次,简便的写下。。。。好像没有别的了?吧?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
  1. class A
  2. {
  3.         public static double pi=3.1415926;
  4.        
  5.         private int r=2;

  6.         public int getLen() {
  7.                 return r;
  8.         }

  9.         public void setLen(int len) {
  10.                 this.r = r;
  11.         }
  12.        
  13. }
  14. class Test
  15. {
  16.         public static void main(String[] args)
  17.         {
  18.                 double area        = (new A()).pi*(new A()).getLen()*(new A()).getLen();
  19.                 System.out.println(area);
  20.         }
  21. }
复制代码
仅仅用于举例,真这么写你就离被炒鱿鱼不远了

匿名对象可以调用属性,但多数这种情况是当属性是静态的,通过匿名使用此属性进行预算,例如圆周率。如果不是静态,那么一般会定义成私有,然后匿名对象可以使用方法来访问属性。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
匿名对象使用场景是只有方法只调用一次的时候和做为实际参数传递的时候,
new Person().show()
menthod(new Person());

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
匿名对象可以调用属性,但是没有什么意义。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马