java 代码块局部变量_java入门(十八) | OOP(五)之构造代码块和局部代码块

56e452ce1dcf74ec629cb6798e40082a.png

构造代码块和局部代码块

{

代码...

}

1.1 构造代码块

在类的内部,方法外部的代码块

通常用于抽取构造方法中的共性代码

每次调用构造方法前都会调用构造代码块

优先于构造方法加载

package cn.qile.block;

//测试代码块

public class Test1_Block {

public static void main(String[] args) {

//创建对象测试

//1、如果有构造代码块,创建对象时发生两件事:先执行构造代码块再执行构造方法

Block b = new Block();

Block b2 = new Block("jack");

}

}

//创建Block类

class Block{

//2、构造代码块:位置是在类里方法外

String country ;

{

//3、构造代码块中可以提供所有构造方法的共性功能

country="中国人";

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

}

//构造方法

public Block() {

System.out.println("无参构造:"+country);

}

public Block(String n) {

System.out.println("含参构造:"+n+"是"+country);

}

}

1.2 局部代码块

在方法里的代码块

通常用于控制变量的作用范围,出了括号就失效

变量的方法越小越好,成员变量会有线程安全问题

package cn.qile.block;

//测试代码块

public class Test2_Block {

public static void main(String[] args) {

//创建对象测试

//1、如果有构造代码块,创建对象时发生两件事:先执行构造代码块再执行构造方法

Block b = new Block();

b.eat();//方法调用时,才触发局部代码块

Block b2 = new Block("jack");

}

}

//创建Block类

class Block{

//2、构造代码块:位置是在类里方法外

String country ;

{

//3、构造代码块中可以提供所有构造方法的共性功能

country="中国人";

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

}

//构造方法

public Block() {

System.out.println("无参构造:"+country);

}

public Block(String n) {

System.out.println("含参构造:"+n+"是"+country);

}

//提供普通方法

public void eat() {

//局部代码块:位置是在方法里 + 主要用来控制变量的作用范围

{

int i = 10;

System.out.println("局部代码块:"+i+"个"+country);

}

}

}

总结:

代码块加载顺序:构造代码块 -> 构造方法 -> 局部大码块

构造代码块:每次创建对象都会执行构造方法,在执行构造方法前会执行构造代码块

局部代码块:存在方法里,只有调用方法才会执行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值