前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >类中的代码块儿

类中的代码块儿

作者头像
星哥玩云
发布2022-09-14 19:47:48
2010
发布2022-09-14 19:47:48
举报
文章被收录于专栏:开源部署

1、局部代码块

普通代码块就是直接定义在方法或语句中,以”{}”划定的代码区域,此时只需要关注作用域的不同即可,方法和类都是以代码块的方式划定边界的。

代码语言:javascript
复制
class TestDemo{
		public static void main(String[] args) {
			{
         int x = 1;
         System.out.println("普通代码块" + x);
			}
			int x = 99;
			System.out.println("代码块之外" + x);
		}
	}

运行结果:

2、构造代码块

直接定义在类中成员位置的代码块,优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作,每创建一个对象均会执行一次构造代码块。

代码语言:javascript
复制
class Person {
    private String name;
    private int age;
    {
        System.out.println("构造代码块执行了");
    }
    Person(){
        System.out.println("Person无参数的构造函数执行");
    }
    Person(int age){
        this.age = age;
        System.out.println("Person(age)参数的构造函数执行");
    }
}
public class PersonDemo{
    public static void main(String[] args){
        Person p = new Person();
        Person p1 = new Person(23);
    }
}

运行结果:

3、静态代码块

静态代码块是定义在成员位置,使用static修饰的代码块。

特点:产生对象时执行,它优先于主方法执行、优先于构造代码块执行。

该类不管创建多少对象,静态代码块只执行一次。

可用于给静态变量赋值,用来给类进行初始化。

案例1:

代码语言:javascript
复制
class Person {
    private String name;
    private int age;

    //静态代码块
    static {
        System.out.println("静态代码块执行了");
    } 
    public Person(String name) {
        super();
        this.name = name;
    }
    public Person(){

    }
}

public class PersonDemo {
    public static void main(String[] args) {
        int a = 10;
        Person p1 = new Person();
        Person p2 = new Person("刘备");
        Person p3 = new Person("刘备");
        Person p4 = new Person("刘备");
    }
}

运行结果:

案例2:

代码语言:javascript
复制
class Person {
    private String name;
    private int age;

    //静态代码块
    static {
        System.out.println("静态代码块执行了");
    }
    //成员代码块 又叫构造代码块 对象级别的代码块,每次创建对象都会执行一次
    {
        System.out.println("我是构造代码块");
    }
    public Person(String name) {
        super();
        this.name = name;
    }
    public Person(){

    }
}

public class PersonDemo {
    public static void main(String[] args) {
        Person p1 = new Person();
        Person p2 = new Person("刘备");
        Person p3 = new Person("刘备");
        Person p4 = new Person("刘备");
        int a = 10;
        //局部代码块限定变量作用域范围
        {
            System.out.println(a);
            int b = 20;
            System.out.println(b);
        }
        //  System.out.println(b);
    }
}

运行结果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、局部代码块
  • 2、构造代码块
  • 3、静态代码块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档