秒秒pk10概率 _构造函数和构造代码块

  • 时间:
  • 浏览: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)公众号独家发布