当看到《疯狂Java程序员的修养》这段代码的时候,我是真的搞蒙了,不知道怎么一回事代码如下:



public classPrice {

   //类成员是 Price实例

   finalstaticPrice INSTANCE=new Price(2.8);//1

   //定义一个类变量

   static double initPrice=20;//2

  

   //定义该PricecurrentPrice实例变量

   double currentPrice;

   public Price(double discount){

      System.out.println("我是构造器!!!!");

      System.out.println(initPrice);

      currentPrice=initPrice-discount;

     

   }

 

   public static void main(String[] args) {

      //通过priceINSTANCE访问currentPrice实例变量

      System.out.println(Price.INSTANCE.currentPrice);

      //

      Pricep=new Price(2.8);

      //通过显示创建的price实例访问currentPrice实例变量

      System.out.println(p.currentPrice);

     

 

   }

 

}

输出:我是构造器!!!!

0.0

-2.8

我是构造器!!!!

20.0

17.2

当交换12的位置后输出:我是构造器!!!!

20.0

17.2

我是构造器!!!!

20.0

17.2

刚开始我不明白怎么回事,后来师傅告诉我说,因为staticnew了一个对象,所以先加载构造器的代码,然后再给static的对象赋值,所以出现了以上的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值