黑马程序员技术交流社区

标题: [代码块]三大代码块 [打印本页]

作者: 可以假装看不见    时间: 2016-5-27 23:21
标题: [代码块]三大代码块
构造代码块与静态代码块
  1. public class ConstructorBlock {

  2.            /**
  3.             * @param args
  4.             */
  5.            public static void main(String[] args) {
  6.          new Person();
  7.          new Person(10);
  8.            }

  9.    }
  10.    class Person{
  11.            private int age;
  12.           
  13.           
  14.            {
  15.              System.out.println("构造代码块被执行");
  16.            }
  17.       
  18.           
  19.            static{
  20.                System.out.println("静态代码块被执行");
  21.        }
  22.            public Person() {
  23.                    super();
  24.                    // TODO Auto-generated constructor stub
  25.            }

  26.            public Person(int age) {
  27.                    super();
  28.                    this.age = age;
  29.            }
  30.           
  31.           
  32.    }
复制代码

  
   运行结果:
     静态代码块被执行  //跟随类的加载而加载,但是只调用一次 在加载类的时候调用了一次
     构造代码块被执行  //new对象的时候调用,第一次空参对象调用
     构造代码块被执行  //第二次new带参的时候,通过super();调用一次

   结论:
     静态代码块随着类加载而执行,并且只执行一次
     构造代码块,只要创建该类的对象,该类的构造代码块就执行
作者: nanliner    时间: 2016-5-28 00:20
这个很好记的,顶一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2