黑马程序员技术交流社区

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

作者: 符立波    时间: 2012-10-29 06:32
标题: 匿名对象
本帖最后由 符立波 于 2012-11-19 21:19 编辑

说一下匿名对象的定义,特点和使用场合,老是弄不太清楚啊!!!
作者: 王永彬    时间: 2012-10-29 08:47
匿名对象是对象的简化形式。
特点:简化书写
适用场合:1、当对象只被调用一次时,使用匿名对象更为简化。
          2、可以作为实际参数进行传递。
注意事项:当对一个对象进行多次调用时,就不可以使用匿名对象了,必须给对象起个名字。
作者: 林志进    时间: 2012-10-29 10:30
匿名内部类:其实就是内部类的简写格式。相当于一个匿名子类对象
    前提: 必须继承一个类(抽象类也可)或者实现接口
    格式:  new Object(){
              int x=0;
              void x(){}}.x();
注:这样可以直接用x方法或者获取x变量,但是对象一被引用,引用的变量后不能直接用了,因为多态性。
对于方法中的内部类或块中内部类只能访问块中或方法中的final变量。
作者: 何创    时间: 2012-10-29 10:44
看看我的示例代码:
可能会知道什么是内部类。
class Animal {
    short mShort = 200;
    Animal an;
   
    public Animal go() {
        an = null;
        return an;
    }
   
    class Fish {
        
        public Fish() {
            an.go();
        }
    }
}

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("main() start --->");
        
        hello();
        
        System.out.println("main() end <---");
    }

    public static void hello() {
        Animal an1 = new Animal();
        Animal an2 = new Animal();
        Animal an3 = an1.go();
        
        an1 = null;
        
        // hello
    }
   
}


作者: 丁桂松    时间: 2012-10-29 10:50
我们可以不定义变量引用对象,使用new关键字创建对象后直接使用,这样的对象没有名字,所以叫匿名对象。
通常我们需要使用一个对象且只使用一次的时候,就可以使用匿名对象。比如将对象作为一个参数传递给另外一个函数。
匿名对象因为没有任何引用到达,在使用一次之后即成为垃圾。




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