黑马程序员技术交流社区

标题: 匿名对象问题 [打印本页]

作者: 梁秋瑜    时间: 2013-5-27 20:18
标题: 匿名对象问题
匿名对象是否可以调用属性?解释一下可行性?

作者: 无妄无涯    时间: 2013-5-27 20:25
匿名对象可以调用属性,但是没有什么意义。
作者: yasyas001    时间: 2013-5-27 20:36
匿名对象使用场景是只有方法只调用一次的时候和做为实际参数传递的时候,
new Person().show()
menthod(new Person());
作者: 韩明海    时间: 2013-5-27 20:57
  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. }
复制代码
仅仅用于举例,真这么写你就离被炒鱿鱼不远了

匿名对象可以调用属性,但多数这种情况是当属性是静态的,通过匿名使用此属性进行预算,例如圆周率。如果不是静态,那么一般会定义成私有,然后匿名对象可以使用方法来访问属性。
作者: 陈潜    时间: 2013-5-27 22:47
个人理解。。。
首先匿名对象是肯定可以调用属性的,因为属性是对象自己内部的,自己为什么不能调用自己的东西呢?就算是在private也可以吧?
其次,使用匿名对象的情况:在个人用匿名对象的时候,好像一般都是只使用一次,简便的写下。。。。好像没有别的了?吧?
作者: 韩明海    时间: 2013-5-28 20:50
陈潜 发表于 2013-5-27 22:47
个人理解。。。
首先匿名对象是肯定可以调用属性的,因为属性是对象自己内部的,自己为什么不能调用自己的 ...

匿名对象都是在别的类里使用 啊,如果属性是私有的,别的类是没法使用的。
作者: 王林涛    时间: 2013-5-28 21:53
首先你要理解什么是匿名对象!
匿名对象是当对方法调用一次时才使用,可以当实际参数进行传递!

method(new Cat());

作者: 袁梦希    时间: 2013-5-30 10:49
楼主你好,如果帖子没问题了,那么请把帖子的类型改为“已解决”。如果不会改,请看我的个性签名
作者: 刘胜寒    时间: 2013-5-31 01:03
如果问题以解决,请修改分类。谢谢合作
作者: 山鹰    时间: 2013-5-31 09:06
本帖最后由 山鹰 于 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新对象





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2