Java 匿名对象的详解

来源:互联网 发布:傲剑金蛇数据 编辑:程序博客网 时间:2024/06/05 11:06

一.匿名对象:没有名字的实体,也就是该实体没有对应的变量名引用。

二.匿名对象的用途

1,当对象对方法进行一次调用的时候,可以使用匿名对象对代码进行简化。

   为什么只对方法,而不调用属性呢?因为匿名对象调用属性没意义。

   如果对象要多成员进行多次调用,必须给对象起个名字。不能在使用匿名对象。

2,匿名对象可以实际参数进行传递。

三.匿名对象的简单演示

new Car().run(); 

四.简单的例子

需求

将小汽车改装成3个轮子的黑车。

1:汽车类。

2:汽车修理厂

[java] view plain copy
 print?
  1. /* 
  2.  匿名对象 
  3.  匿名信 
  4.  修黑车 
  5.  汽车类 
  6.  黑车厂类 
  7.  把汽车的改成黑色3轮车。 
  8.  
  9.  */  
  10. class Car {  
  11.     String name = "smart";  
  12.     String color = "red";  
  13.     int num = 4;  
  14.   
  15.     void run() {  
  16.         System.out.println(name + ":" + color + ":" + num + ":跑起来了。。。。");  
  17.     }  
  18.   
  19. }  
  20.   
  21. class BlackCarFactory {  
  22.     String name;  
  23.     String addr;  
  24.   
  25.     Car repairCar(Car c) {  
  26.         c.num = 3;  
  27.         c.color = "黑色";  
  28.         System.out.println("改装成功啦。。。");  
  29.           
  30.     }  
  31. }  
  32.   
  33. class Demo1 {  
  34.   
  35.     public static void main(String[] args) {  
  36.   
  37.         BlackCarFactory bcf = new BlackCarFactory();  
  38.         bcf.name = "幸福修理厂";  
  39.         bcf.addr = "天河区棠东东路御富科贸园a栋206";  
  40.   
  41.         // 非匿名对象  
  42.         Car c = new Car();  
  43.         c.run();  
  44.         // 改装  
  45.         bcf.repairCar(c);  
  46.         // 取车  
  47.         c.run();  
  48.   
  49.         // 匿名对象一,只使用一次:  
  50.         // 如下创建了2个对象  
  51.         /* 
  52.          * new Car().run(); 
  53.          *  
  54.          * new Car().run(); 
  55.          */  
  56.   
  57.         // 匿名对象二,作为实际参数传递  
  58.         Car c2 = bcf.repairCar(new Car());  
  59.         c2.run();  
  60.   
  61.         System.out.println();  
  62.     }  
  63. }  

总结:

   1. 匿名对象设置的属性永远无法获取?  没有引用变量指向那个对象。

   2. 任何两个匿名对象使用==比较,永远返回false。

   3.  匿名对象主要应用于实参。


0 0