匿名类-包名.类名$n

匿名类-包名.类名$n,第1张

请写出以下程序运行结果:

package test;
public class Test {
   public static void main(String[] args) {
      Test t = new Test();
      t.show(new Car(){
         public void run(){
            System.out.println("test run");           
         }
      });
   }
   public void show(Car c){
      c.run();
      c.show();
}}
abstract class Car{
   public void run(){
      System.out.println("car run");     
   }
   public void show(){
       System.out.println(getClass().getName());
}}

参考答案如下:

test run

package.Test$1

解析:

第一个输出大家都能理解,不再解释。

第二个输出具体是什么意思呢?这里的package是主类所在的包名,如果没有包,则输出就是Test$1了;Test$1这个类名是编译器给它的名字(匿名类没有名字,但是java编译器要给他起个名,才好分辨)而命名的格式就是第一个Test类下面的匿名类的话就叫$1,若有第二个 ,那么第二个就是$2。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/728859.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存