Java学习笔记----代码块

1.普通代码块:如果一个代码块写在方法里,就成称为普通代码块

例.编写普通代码块

public class TestDemo{
    public static void main(String [] args){
        {  //普通代码块
            int num = 10;  //局部变量
            System.out.println("num = " + num);
        }
        int num = 100;     //全局变量
        System.out.println("num = " + num);
    }
}
10
100

本例中,由于第一个变量定义在代码块中,所以是一个局部变量;第二个变量定义在普通代码块外,因此相对而言就属于全局变量

2.构造块

        如果将一个代码块写在一个类里,这个代码块就称为构造块

例.定义构造块

class Book{
    public Book(){
        System.out.println("[A]Book类的构造方法");
    }
    {   //将代码块写在类中,所以称为构造块
        System.out.println("[B]Book类的构造方法");
    }
}

public class TestDemo{
    public static void main(String args[]){
        new Book();
        new Book();
    }
}
[B]Book类的构造方法
[A]Book类的构造方法
[B]Book类的构造方法
[A]Book类的构造方法

本程序的运行结果可见,代码的结构和顺序无关,而且构造块在每一次实例化类对象时都会被调用,而且优于构造方法运行

3.静态块

        如果一个代码使用static进行定义,就称其为静态块。静态块有时分为两种情况:
例.情况一:在非主类中使用

class Book{
    public Book(){
        System.out.println("[A]Book类的构造方法");
    }
    {   //将代码块写在类中,所以称为构造块
        System.out.println("[B]Book类的构造块");
    }
    static{
        System.out.println("[C]Book类中的静态块");
    }
}

public class TestDemo{
    public static void main(String args[]){
        new Book();
        new Book();
    }
}
[C]Book类中的静态块
[B]Book类的构造块
[A]Book类的构造方法
[B]Book类的构造块
[A]Book类的构造方法

本例中通过运行结果可以发现,当有多个实例化对象产生时,静态块会优先使用,而且只调用一次。静态块的主要作用一般可以为static属性初始化

例.利用静态块为static属性初始化

class Book{
    static String msg;
    public Book(){
        System.out.println("[A]Book类的构造方法");
    }
    {
        System.out.println("[B]Book类的构造块");
    }
    static{
        msg = "HEllo".substring(0,2);
        System.out.println("[C]Book类的静态块");
    }
}

public class TestDemo{
    public static void main(String args[]){
        new Book();
        new Book();
        System.out.println(Book.msg);
    }
}
[C]Book类的静态块
[B]Book类的构造块
[A]Book类的构造方法
[B]Book类的构造块
[A]Book类的构造方法
HE

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值