大发uu快3平台代理_构造函数和构造代码块

  • 时间:
  • 浏览:1
  • 来源:言午博客 - 专注共享福佳博客活动

               今天回想这几天走过的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)公众号独家发布