大发2分彩app苹果_构造函数和构造代码块

  • 时间:
  • 浏览:2

               今天回想这几天走过的Java路程,发现漏了另有三个白多点,太久构造代码块,我绞尽脑汁,也没想起来它的作用,我骗不了我买车人,就搜相关资料,重新学习,在学习的过程中发现构造代码块和构造函数有一定的联系,为了捕捉或多或少联系,我总结了另有三个白多案例,或多或少案例能加深你对构造函数和构造代码块的理解。我写或多或少博客一是为了正确处理下次再被构造代码块这块石头绊倒,二是为了能给要能 解惑的人提供或多或少帮助,还是那句话:

             越懂得与人分享,你的价值增值越大!

          看代码要能 先明白另有三个白多需求:

                         使用Java类描述另有三个白多婴儿,假设现在本身 婴儿,本身 婴儿是一出生都不 了名字,亲们把或多或少婴儿叫白户,另本身 婴儿是出生后才有了名字,亲们把或多或少婴儿叫黑户。(为了方便理解,我把刚出生就将会有名字的叫白户,把出生后才起名的叫黑户)

//婴儿类

public class Baby { int id;//身份证 String name;//名字 //哭 public void cry(){ System.out.println(name+"哇哇的哭。。。。"); } } class Test{ public static void main(String[] args) { //创建另有三个白多baby对象 Baby baby = new Baby();//婴儿出生 baby.id=111; baby.name="小娃娃";//黑户 baby.cry(); } }

将会小娃娃是出生以前 才赋的值,太久小娃娃是黑户,亲们现在要让婴儿一出生都不 名字,就要用构造函数。

构造函数的作用:    给对应的对象进行初始化

构造函数定义的格式:

构造函数要注意的细节:

1.构造函数那末返回值类型

2.构造函数的函数名要能 要与类名一致

3.构造函数并都不 由亲们手动调用的,太久在创建对应的对象时,jvm就会主动调用到对应的构造函数

4.将会另有三个白多类那末显式的写上另有三个白多构造最好的方式时,Java编译器会为该类加进去去另有三个白多无参的构造最好的方式

5.将会另有三个白多类将会显示的写上另有三个白多构造最好的方式时,Java编译器不需要再为该类加进去去无参的构造最好的方式

6.构造函数是还能不能在另有三个白多类中以函数重载的形式居于多个的

//婴儿类
public class Baby {
    int id;//身份证
    String name;//名字

    //无参构造函数
    public  Baby(){

    }
    //有参构造函数
    public Baby(int id, String name) {
        this.id = id;
        this.name = name;
        System.out.println("Baby的属性初始化完毕!!!");
    }

    //哭
    public void cry(){
        System.out.println(this.name+"哇哇的哭。。。。");
    }
}

class Test{
    public static void main(String[] args) {
        //创建另有三个白多baby对象
        Baby baby = new Baby(222,"小可爱");//婴儿出生    白户
        baby.cry();
    }
}
运行结果:

Baby的属性初始化完毕!!!
小可爱哇哇的哭。。。。

通过上边的黑户和白户,亲们能对构造函数有个深刻的理解,下面我再引申出构造代码块,依旧是或多或少例子,或者需求变了,现在的需求是婴儿一出生就要能 哭,将会说到这,太久人们理解了上边的代码,肯定马上就能想到,这还不简单,把哭的最好的方式写到构造函数中不就行了,对,另有三个白多多人太好也还能不能,或者有弊端,Java要求代码简练,能少写的就太久写,你先看下面的代码就知道了

//婴儿类
public class Baby {
    int id;//身份证
    String name;//名字

    //无参构造函数
    public  Baby(){
        cry();
    }
    //有参构造函数
    public Baby(int id, String name) {
        this.id = id;
        this.name = name;
      
        cry();
    }

    //哭
    public void cry(){
        System.out.println("哇哇的哭。。。。");
    }
}

class Test{
    public static void main(String[] args) {
        //创建另有三个白多白户baby对象
        Baby baby = new Baby(222,"小可爱");//白户
        //创建另有三个白多黑户baby对象
        Baby baby1 = new Baby();//黑户
    }
}

人太好白户黑户本身 婴儿都不 出生的以前 哭了,或者在另有三个白多构造函数中冒出了重复代码,cry()最好的方式重复了两次,为了正确处理重复代码或多或少什么的什么的问题 ,下面以后 构造代码块出场吧!

构造函数的作用:给对应的对象进行初始化

构造代码块的作用:  给对象进行统一的初始化

构造代码块的格式:

注意:构造代码块的大括号要能 居于成员位置上

代码块的类别:

1.构造代码块

2.局部代码块        大括号居于最好的方式之内       作用:缩短局部变量的生命周期,节省或多或少点内存

3.静态代码块

构造代码块要注意的事项:

1.Java编译器编译另有三个白多Java源文件的以前 ,会把成员变量的声明语录提前至另有三个白多类的最前端

2.成员变量的初始化工作人太好都不 在构造函数中进行的

3.一旦经过Java编译器编译后,构造代码块的代码就会被移动到构造函数中执行,是在构造函数以前 执行的,构造函数中的代码是最后执行的

4.成员变量的显式初始化与构造代码块的代码是按照当前代码的顺序执行的

//婴儿类
public class Baby {
    int id;//身份证
    String name;//名字

    //构造代码块
    {
        cry();
    }
    //无参构造函数
    public  Baby(){

    }
    //有参构造函数
    public Baby(int id, String name) {
        this.id = id;
        this.name = name;

    }

    //哭
    public void cry(){
        System.out.println("哇哇的哭。。。。");
    }
}

class Test{
    public static void main(String[] args) {
        //创建另有三个白多白户baby对象
        Baby baby = new Baby(222,"小可爱");//白户
        //创建另有三个白多黑户baby对象
        Baby baby1 = new Baby();//黑户
        //匿名对象
        new Baby();
    }
}
运行结果:

哇哇的哭。。。。
哇哇的哭。。。。
哇哇的哭。。。。
//婴儿类
public class Baby {
    int id;//身份证
    String name;//名字

    //构造代码块
    {
        cry();
    }
    //无参构造函数
    public  Baby(){

    }
    //有参构造函数
    public Baby(int id, String name) {
        this.id = id;
        this.name = name;

    }

    //哭
    public void cry(){
        System.out.println("哇哇的哭。。。。");
    }
}

class Test{
    public static void main(String[] args) {
        //局部代码块
        {
            //创建另有三个白多白户baby对象
            Baby baby = new Baby(222,"小可爱");//白户
            //创建另有三个白多黑户baby对象
            Baby baby1 = new Baby();//黑户
            //匿名对象
            new Baby();
        }

    }
}

完整性写完了,将会你人太好对你有用,记得推荐,将会人太好哪不对,欢迎指正!

  本文已独家授权给脚本之家(jb51net)公众号独家发布