好运5分快3APP下载_构造函数和构造代码块

  • 时间:
  • 浏览:0

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