• java代码块


    代码块指的是使用"{}"括起来的一段代码,根据代码块存在的位置可以分为4种:

    普通代码块;

    构造代码块;

    静态代码块;

    同步代码块(线程同步的时候讲解)

    代码块里变量的作用域:

    只在自己所在区域(前后的{})内有效;

    普通代码块:

    普通代码块就是直接定义在方法或语句中定义的代码块:

    public void show(){

    普通代码块

    }

    构造代码块:

    直接写在类中的代码块:

    优先于构造方法执行,每次实例化对象之前都会执行构造代码块。

    Eg:

    public class Demo {

        {

                 System.out.println("我是构造代码块");

        }

        public Demo(){

                  System.out.println("我是构造方法");

        }

        public static void main(String[] args) {

                 Demo d1  = new Demo();

                 Demo d2  = new Demo();

        }

    }

    静态代码块

    使用static 修饰的构造代码块:

    优先于主方法执行,优先于构造代码块执行,不管有创建多少对象,静态代码块只执行一次,可用于给静态变量赋值;

    Eg:

    package reviewDemo;

    /**

     * 测试各代码块的优先级

     *  优先级顺序:静态代码块  > 构造代码块 > 普通代码块

     *  备注:无论创建几个对象,静态代码块只执行一次!

     */

    public class Demo13 {

        Demo13(){

            System.out.println("我是构造方法!");

        }

        {

            System.out.println("我是构造代码块!");//实例化对象的时候才会去调用!

        }

        static{

            System.out.println("我是静态代码块!");

        }

       

        public static void main(String[] args) {

            new Demo13();

            new Demo13();//再次创建对象,证明无论创建几次对象,静态代码块都只执行一次

            System.out.println("我是普通代码块!");

        }

    }

    输出:

    我是静态代码块!

    我是构造代码块!

    我是构造方法!

    我是构造代码块!

    我是构造方法!

    我是普通代码块!

    我的总结:这个例子非常好!

  • 相关阅读:
    生成器函数
    初识函数
    格式化输出
    流程控制-while循环
    流程控制if语句
    Python入门
    Eclipse搭建C++开发环境
    Android SQLite基本用法
    Android拍照后更新相册
    操作系统相册和获取相册路径
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11131544.html
Copyright © 2020-2023  润新知