zoukankan      html  css  js  c++  java
  • java中普通代码块,构造代码块,静态代码块的区别及代码示例

    本文转自:http://www.cnblogs.com/sophine/p/3531282.html

    执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法。

    其中静态代码块只执行一次。构造代码块在每次创建对象时都会执行。

     

    1.普通代码块

    //普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”
    public class CodeBlock01{
          public static void main(String[] args){
              
                {
                   int x=3;
                   System.out.println("1,普通代码块内的变量x="+x);    
                }
                
                int x=1;
                System.out.println("主方法内的变量x="+x);
                
                {
                   int y=7;
                   System.out.println("2,普通代码块内的变量y="+y);    
                }
          }
    }
        
    /*
    运行结果:
    1,普通代码块内的变量x=3
    主方法内的变量x=1
    2,普通代码块内的变量y=7
    */

    2.构造代码块

    //构造块:直接在类中定义且没有加static关键字的代码块{}称为构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
    
    public class CodeBlock02{
        {
           System.out.println("第一代码块");    
        }
        
        public CodeBlock02(){
            System.out.println("构造方法");
        }
            
        {
            System.out.println("第二构造块");
        }
        public static void main(String[] args){
            new CodeBlock02();
            new CodeBlock02();
            new CodeBlock02();    
        }
    }    
    
    /*
    执行结果:
    第一代码块
    第二构造块
    构造方法
    第一代码块
    第二构造块
    构造方法
    第一代码块
    第二构造块
    构造方法
    */

    3.静态代码块

    //静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。
    //如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
    //注意:1 静态代码块不能存在于任何方法体内。2 静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。
    
    
    class Code{
        {
            System.out.println("Code的构造块");
        }
        
        static{
            System.out.println("Code的静态代码块");
        }
            
        public Code(){
            System.out.println("Code的构造方法");
        }
    }
        
        
    public class CodeBlock03{
        {
           System.out.println("CodeBlock03的构造块");    
        }
         
        static{
            System.out.println("CodeBlock03的静态代码块");
        }
            
        public CodeBlock03(){
            System.out.println("CodeBlock03的构造方法");
        }
            
        public static void main(String[] args){
            System.out.println("CodeBlock03的主方法");
            new Code();
            new Code();
            new CodeBlock03();
            new CodeBlock03();
        }
    }
    /*
    CodeBlock03的静态代码块
    CodeBlock03的主方法
    Code的静态代码块
    Code的构造块
    Code的构造方法
    Code的构造块
    Code的构造方法
    CodeBlock03的构造块
    CodeBlock03的构造方法
    CodeBlock03的构造块
    CodeBlock03的构造方法
    */

     

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/yadongliang/p/6404452.html
Copyright © 2011-2022 走看看