1,简单来说就是 Tthread类(线程类) 中的一个方法 Thread.currentThread() 是指获取当前运行的线程对象 例如: Thread.currentThread().getName() 就是获取当前运行的线程的名称 简单来说这就差不多了 可能不完整 谁让我是新手呢... Thread t=Thread.currentThread().getName(), t.getName. 熟记这种书写格式。对今后学习很有帮助。 2,如果匿名类实现了一个接口,它的主体必须实现接口的方法。(下面的例子超级经典) 1.interface pr 2.{ 3. void print1(); 4.} 5. 6.public class noNameClass 7.{ 8. public pr dest() 9. { 10. return new pr(){ 11. public void print1() 12. { 13. System.out.println("Hello world!!"); 14. } 15. }; 16.} 17. 18.public static void main(String args[]) 19.{ 20. noNameClass c = new noNameClass(); 21. pr hw=c.dest(); 22. hw.print1(); 23.} 24.}
2 package com.l;
public class DemoXiancheng2 {
public static Demointerfence a(){ return new Demointerfence() { @Override public void print() { // TODO Auto-generated method stub System.out.println("this is a niming neibu lei"); } }; } public static void main(String[] args) { // TODO Auto-generated method stub //DemoXiancheng2 de=new DemoXiancheng2(); Demointerfence demoi=DemoXiancheng2.a(); demoi.print();
}
} 总结:new建立了一个Demointreence的对象,而后面{...}中的操作默认作用于这个对象。请速记,匿名(父类,抽象类,接口这些玩意,这些内容需要记住,见到别慌) *一个抽象类是不能直接new 的,必须先有实现类了我们才能new出它的实现类。 上面的伪代码(方法)就是表示new 的是Father(抽)的实现类,这个实现类是个匿名内部类。 注意: ·匿名内部类不能有构造方法。 ·匿名内部类不能定义任何静态成员、方法和类。 ·匿名内部类不能是public,protected,private,static。 ·只能创建匿名内部类的一个实例。 ·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。 ·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。 ·内部类只能访问外部类的静态变量或静态方法。
作用:1,简化写法,省去了一个中间类 2,有一个类Child,它既想继承Parent的count()方法,又想实现ICount接口中的count方法,这个时候怎么办呢?内部类就可以大显身手了: class Child extends Parent { ICount getCount() { return new ICount { int i = 0; int count() { return (i *= 2); } } } }