zoukankan      html  css  js  c++  java
  • 三个案例,解读静态代码块和构造代码块

    一、对静态代码块和非静态代码块进行简单的总结

    1.静态代码块:

    静态代码块是在当类被载入(内存)时最先被调用的,且之被执行一次,静态块常用来执行类属性的初始化。执行的载入之前就会调用。

    2.非静态代码块:

    非静态代码块是在当类的对象被创建载入(内存)时最先被调用的,每创建一个对象,即每载入一个对象,非静态代码块都执行一次。执行类对象的载入之前就会调用。

    3.静态方法、非静态方法:都是调用时,才执行的。静态方法属于类的,加载完类就可以调用静态方法;非静态方法是属于对象的,加载完对象就可以调用非静态方法。

     二、相关示例演示

     1 public class Cc {
     2     public static void main(String[] args) {
     3         test p=new test();
     4     }
     5 }
     6 
     7 class test {
     8     test() {  //在类对象创建的时候就开始执行。简称创建即执行。
     9         System.out.println("这是构造函数");
    10     }
    11 
    12     {  //构造代码块,执行在构造函数之前,每当在创建类对象的时候都执行。
    13         System.out.println("这是构造代码块");
    14     }
    15     
    16     static {  //静态代码块,最早执行,且值执行一次。
    17         System.out.println("这是静态代码块");
    18     }
    19 }

    打印结果:

    演示当被调用两次的时候,会发生什么打印结果。加深对静态代码块的理解。

     1 public class Ccc {
     2 public static void main(String[]args)
     3 {
     4     MyTest p=new MyTest();
     5     MyTest p2=new MyTest();//两次调用
     6 }
     7 }
     8 class MyTest{
     9     
    10     MyTest(){
    11         System.out.println("这是构造函数");
    12     }
    13     
    14     {
    15         System.out.println("这是构造代码块");
    16     }
    17     
    18     static{
    19         System.out.println("这是静态代码块");
    20         
    21     }
    22 }

    打印结果如下:

    介绍一个含参的例子:

     1 class Cccc {
     2     public static void main(String[] args) {
     3         new Person(77);
     4         new Person();
     5     }
     6 }
     7 
     8 class Person {
     9     
    10     Person() {
    11         System.out.println("a");
    12     }
    13 
    14     
    15     Person(int x) {  //注意带参数了!!
    16         System.out.println(x);
    17     }
    18 
    19     static {
    20         System.out.println("b");
    21     }
    22 
    23     {
    24         System.out.println("c");
    25     }
    26 }

    打印结果:

     

    个人学习笔记,针对本人在自学中遇到的问题。

  • 相关阅读:
    什么是“开放构造类型”,“封闭构造类型”
    代码整洁整洁之道读书笔记 2
    学习 WCF By Visual Studio 2010 (1)起步“全双工”
    代码整洁整洁之道读书笔记 1
    学习 WCF By Visual Studio 2010 (2) 宿主
    持久层通用组件设计与范例,写给某孩子(基于JDBC)
    [zz]JS后退一页, JS返回上一页代码, JS返回下一页,JS返回第几页,JS页面跳转, JS引用JS
    web下vs2008+crystal report 不预览直接打印
    用SQL语句删除重复记录
    Gridview 添加行.
  • 原文地址:https://www.cnblogs.com/1693977889zz/p/6984669.html
Copyright © 2011-2022 走看看