zoukankan      html  css  js  c++  java
  • Java中的匿名对象

      匿名对象就是没有明确给出名字的对象。一般匿名对象只使用一次,而且匿名对象只在堆内存中开辟空间,而不存在栈内存的引用。

    一个普通的常量字符串就可以表示一个匿名String对象。

    比如可以

    int len = "hello".length();
    

      只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现。最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口

    public class AnonymousDemo {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Thread t  = new Thread(){
    			public void run(){
    				for(int i = 1; i<=4 ; i++){
    					System.out.print(i+" ");
    				}
    			}
    		};
    		t.start();
    	}
    
    }
    

    output: 1 2 3 4   

    public class AnonymousDemo {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub	
    		Runnable r = new Runnable() {
    			
    			@Override
    			public void run() {
    				// TODO Auto-generated method stub
    				for(int i = 1; i <= 4; i++){
    					System.out.print(i+" ");
    				}
    			}
    		};
    		
    		Thread t = new Thread(r);
    		t.start();
    	}
    }
    

    output: 1 2 3 4   

    除此之外,还经常用到的就是为控件添加监听器时。

    匿名对象在实际开发中基本上都是作为其他类实例化对象的参数传递的, 匿名对象实际上就是一个堆内存空间,对象不管是不是匿名对象,都必须在开辟的堆内存空间之后才可以使用。

  • 相关阅读:
    预览PDF【reactpdf】插件的使用(二)
    多叉merkletree的实现
    中国优秀的架构师是不是出现了严重断层?
    工程师的思维转变
    QCore/Library说明文档
    QParserGenerator代码分析二(A fix&An example)
    山寨STL实现之list
    山寨STL实现笔记
    山寨STL实现之内存池V2
    词法分析器1(正则表达式到εNFA的转换)
  • 原文地址:https://www.cnblogs.com/aituming/p/4767099.html
Copyright © 2011-2022 走看看