蜡笔没了小新

愿生活正在渐渐变成你想要的样子

Java基础之代码块


关于代码块的概述:用{}括起来的代码,统称为代码;

根据其位置以及声明不同:分为以下:

       1>局部代码块: 在main()里面,给变量限定它的生命周期

       2>构造代码块:在一个类中的成员位置中,用{}括起来,

            作用:可以将多个构造方法中的相同的代码放到构造代码块中,对对象进行初始化.    在每次执行构造方法之前,先执行构造 代码块.

       3>静态代码块:在一个类的成员位置,也是用{}包起来,但是他被static修饰

              作用:一般情况 它的作用给类进行初始化

 面试题:

                构造代码块,构造方法,静态代码的优先级?

                静态代码块>构造代码块>构造方法

注意事项:

  静态代码:只能执行一次

  构造代码块在每次执行构造方法之前都会被执行. 

下面我们来举例:

package cn.itcast_011;

//定义一个Code类

classCode{

  

   //静态代码块1

   static{

      intx=1000;

      System.out.println(x);

   }

  

   //成员位置的构造代码块1

   {

      intx=100;

      System.out.println(x);

   }

   //构造方法

   publicCode(){

      System.out.println("code无参");

   }

  

   //构造代码块2

   {

      inty=200;

      System.out.println(y);

   }

  

   //有参构造

   publicCode(inta){

      System.out.println("code有参");

   }

  

   //静态代码块2

   static{

      inty=2000;

      System.out.println(y);

   }

}

publicclassCodeDemo{

  

   publicstaticvoidmain(String[]args){

      //创建Code类的对象

      Codecode=newCode();

      System.out.println("--------------------");

      Codecode2=newCode();

      System.out.println("--------------------");

      Codecode3=newCode(100);

   }

}

 

 

执行结果

1000

2000

100

200

code无参

--------------------

100

200

code无参

--------------------

100

200

code有参

 

最后对局部代码块举例说明

         编译不通过,因为x的生命周期被限定只能在局部代码块中使用,不能在其他位置使用

 

package cn.itcast_011;

 

publicclassCodeDemo{

  

   publicstaticvoidmain(String[]args){

     

      //局部代码块

      {

        intx=10;

        System.out.println(x);

      }

     

      //不能访问局部代码块中的这个变量x

      System.out.println(x);

      {

       

        inty=20;

        System.out.println(y);

      }

     

     

   }

}

 

 

阅读更多
上一篇Java基础之二维数组
下一篇Java基础之继承和多态
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭