代码块

1.普通代码块

  • 普通代码块的主要特点是定义在一个方法之中的代码块。
    范例:
public class JavaDemo {
   public static void main (String args[]) {
       {    //普通代码块
          int x = 10 ;            //局部变量
          System.out.println (“x =+ x) ;    //x=10
      }
   int x = 100 ;               //全局变量
   System.out.println (“x =+ x) ;   //x=100
   }
}

2.构造代码块

  • 构造块是定义在一个类之中的。

范例:观察构造块

class person {
   public person() {
     System.out.println(“【构造方法】Person类构造方法执行”) ;
   }
   {
      System.out.println(“【构造块】Person构造块执行”) ;
   }
}
public class JavaDemo {
   public static void main (String args[]) {
      new person() ;
      new person() ;
      new person() ;
   }
}

输出结果:

【构造块】Person构造块执行
【构造方法】Person类构造方法执行
【构造块】Person构造块执行
【构造方法】Person类构造方法执行
【构造块】Person构造块执行
【构造方法】Person类构造方法执行
  • 构造块会优先于构造方法执行,并且每一次实例化新对象的时候都会调用构造块中的代码。

3.静态代码块

  • 静态代码块主要指的是使用static关键字定义的代码块,静态块的定义需要考虑到两种情况:主类中定义静态块、非主类中定义静态块。

范例:在非主类中进行静态块的定义

class person {
   public person() {
      System.out.println(“【构造方法】Person类构造方法执行”) ;
  }
   static {
        System.out.println(“【静态块】静态块执行。”) ;
   }
   {
      System.out.println(“【构造块】Person构造块执行”) ;
   }
}
public class JavaDemo {
   public static void main (String args[]) {
      new person() ;
      new person() ;
      new person() ;
   }
}

输出结果:

【静态块】静态块执行。
【构造块】Person构造块执行
【构造方法】Person类构造方法执行
【构造块】Person构造块执行
【构造方法】Person类构造方法执行
【构造块】Person构造块执行
【构造方法】Person类构造方法执行
  • 此时可以发现静态代码块会优先于构造块执行,并且不管有多少个实例化对象出现静态代码块只会执行一次,静态代码块的主要目的是为类中的静态属性初始化。

范例:观察静态属性初始化

class Message {
      public static String getCountry() {
           //该消息的内容可能来自于网络或其它服务器
          return “中华人民共和国”
      }
}
class person {
   private static String country ;
   static {
     //可能有很多语句要执行
      country = Message.getCountry() ;     //编写一部分的代码
      System.out.println(country) ;
   }
}
public class JavaDemo {
   public static void main (String args[]) {
      new person() ;
   }
}
  • 对于静态代码块我们还必须考虑另外一种情况,在主类中定义的形式。

范例:在主类中进行静态代码块的定义

public class JavaDemo {
   static {
      System.out.println(********* 程序初始化 *********) ;
}
   public static void main (String args[]) {
      System.out.println(“www.mldn.cn”) ;
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值