构造代码块

构造代码块,是为了书写便利。

有些方法在对象创建的时候就希望可以拥有。好比每一个孩子出生需要哭,哭就类似于孩子的本能。这就类似于构造代码块,每个对象刚被创建就立刻需要!

为什么说它便利呢?把创建对象想成孩子出生,世界上每天有那么多孩子出生,每一个都需要哭,这是她们自带的能力。代码不是孩子,会自己添加自己的属性,需要我们来写,那么难道每一个对象被创建的时候,就写一次属性?岂不麻烦,构造代码块就起这个作用,让每一个对象刚被创建就具有自己的属性。但是同时需要知道,孩子出生的哭是为了让肺可以进入空气,接下来的日子里,这个孩子就可以不用为了呼吸而哭。构造代码块只在对象创建的时候被调用,进行了一系类看得见也好看不见也好的操作之后就不在进行了。(看见看不见其实可以理解成有没有被打印,好比我设定了孩子刚出生的年龄为1岁,但没有打印,那么这个年龄执行了,只不过不会反应在操作版上。)

构造代码块被定义了就一定会实现,但实现与打印不同,如果定义了变量,但没有打印,仍然是没有结果的。并且在函数创建对象的时候,构造代码快会被调用。输出代码块的内容。但是在没有对象创建的时候,则不会调用构造函数。

构造代码块:

对一个类的所有对象进行一个统一的初始化操作,只要这个对象被创建,就会执行。


Java中的构造代码块 :用一个大括号包起来的内容
  {
   执行的代码;
  }
  
 【位置】
  在构造函数之前,在成员变量之后,成员方法之前
 代码块分为三大类:
  1. 构造代码块
  2. 局部代码块 (基本不用了)  缩短局部变量的生存周期
  3. 静态代码块  static

package fuhei;

class CuteBaby {

int id;

char sex;

private String name;

//成员变量



cry();

id = 5;

System.out.println(id);

sex = 'n';

System.out.println(sex);

//构造代码块

}

//构造函数

public CuteBaby(String n) {

name = n;

}

public CuteBaby(char s) {

sex = s;

System.out.println("fds");

}

public CuteBaby(int i) {

id = i;

}

//私有化变量的set 和 get 方法

public void setName(String n) {

name = n;

}

public String getName() {

return name;

}

public void cry() {

System.out.println("哇哇的哭~~~");

}

}

public class Demo01 {

public static void main(String[] args) {

CuteBaby baby = new CuteBaby("李一");

//c创建了对象,调用了构造代码块,所以输出了哭,年龄,以及性别

//这里也传了参,但在传参的方法中,并没有打印方法,所以无法显示

System.out.println("=====================================");

baby.cry();//调用了哭方法

System.out.println("=====================================");

System.out.println(baby.id);//对象调用方法名,

System.out.println("=====================================");

CuteBaby doubi = new CuteBaby('M');

//这个点用的是char行的构造代码块,这里定义了性别和cry,因为下面让打印的是id,所以一定会出现ID号

//因为他同时又传了参,所以会调用构造代码块和传参类型的函数

System.out.println("=====================================");

System.out.println(doubi.id);

System.out.println("=====================================");

CuteBaby mengbi = new CuteBaby(15);

//最后又创建了对象,所以调用了构造代码块


}

}

你可能感兴趣的:(构造代码块)