代码块{},Static{}

引入

我们都知道类是有且仅有五大成分组成的分别是:“成员变量”,“构造器”,“成员方法”,“代码块”,“内部类”,今天小烦给您说说五大成分中的其中一个"代码块",代码块按照有无static可以分为静态代码块和实例代码块.下面请跟着小烦跟着往下看↓↓↓↓↓↓↓↓↓

1.静态代码块
静态代码块的掌握:
怎么写,怎么用
格式:
在类中方法外定义一个{},使用static关键字修饰

public class Demo{
	//静态变量
	//静态方法
	//静态代码块
	static{
			//就是静态代码块
			}
}

特点:
静态代码块是用来对类进行初始化的.
执行特点:类加载到内存后只会执行一次.
可以用来初始化静态成员,或者做一些要系统初始化的逻辑.

public class Demo14 {
        public static void main(String[] args) {
            Today stu1 = new Today();
            System.out.println("stu1 = " + stu1);
            Today stu2 = new Today();
            System.out.println("stu2 = " + stu2);
            System.out.println("main方法执行完毕");
            System.out.println("Today.num = " + Today.num);
            System.out.println("Today.num2 = " + Today.num2);
        }
    }
class Today{
    static int num = 100;
    static int num2 ;
    static {
        System.out.println("这是静态代码块!!");
        num2 = 10000;
    }
    }

运行结果
在这里插入图片描述
2.实例代码块
实例代码块
没有static修饰,必须放在类下.与对象初始化一起加载.
格式
class 类名{
//其他成分
{
//实例代码块、构造代码块
}
}
特点:
只会在对象创建是,任何一个构造方法执行之前执行一次.
作用:对对象进行初始化
如果在创建对象之前,就需要给对象中的某些成分进行初始化,可以在每一个构造方法去操作.也可以在构造代码块中完成

public class Demo14 {
    public static void main(String[] args) {
        Today stu = new Today();
        System.out.println("stu.name = " + stu.name);//null 阿三

        Today stu1 = new Today("张三");
        System.out.println("stu1.name = " + stu1.name);//结果?

    }
}


class Today {
    String name;

    {
        //会在每次构造方法执行前,执行一次
        System.out.println("构造代码块");
        name = "阿三";
    }

    public Today() {//构造方法
        System.out.println("构造方法");
    }


    public Today(String name) {
        //调用构造方法之前会执行实例代码块
        this.name = name;
    }
}

运行结果
在这里插入图片描述
实例代码块和静态代码块的区别:
执行的时机:
静态代码块:类加载到内存时,执行一次(和创建对象没关系)
实例代码块:创建对象的时候,在执行构造方法前执行一次(每创建一个对象都会执行一次)
使用区别:
静态代码块:用来初始化对象的成员,也可以在此去初始化静态的成员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值