zoukankan      html  css  js  c++  java
  • Java Bean 为什么必须要有一个无参构造函数?

    作者:西奥多先生
    https://segmentfault.com/a/1190000012940879

    JAVA EE 中,JavaBean 是一个很重要的概念,而 JavaBean 还有以下的使用习惯。

    首先我们知道,有两种方法为java对象中的元素赋值:

    1. 通过类的带参数构造函数的方法

    2. 通过类的set方法

    在 JavaBean 里,一般参数在4个以上的,极不推荐使用带参数构造函数赋值:

    1.  对于一个实体类,对于多个参数,降低可读性

    2. 需要记住构造参数的顺序

    3. 一个参数无效就会造成整个构造函数失效

    4. 当我们要添加新的属性时,不仅要传参数,还要修改构造函数,同时之前所有的构造都要修改

    5. 必须在对象创建之前给参数赋值,而不可以在对象创建后赋值

    使用set方法的优势:

    1.  我们可以显式的看到赋值元素的名称

    2. 可以以任何顺序赋值

    3. 可以忽略一些元素的初始化

    4. 添加新属性时,不需要修改类

    5. 可以在对象创建后赋值

    所以对于javaBean,最好的方法就是只定义一个无参数构造函数,然后用set方法来赋值,最后复习一下类的构造器概念:

    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }
    Bicycle myBike = new Bicycle(30, 0, 8);
    
    public Bicycle() {
        gear = 1;
        cadence = 10;
        speed = 0;
    }
    Bicycle yourBike = new Bicycle();
    

    一个类可以重载多个构造函数,只要他们的参数不同,当没有申明构造函数时,java将自动创建构造函数,若已申明带参数构造函数,必须申明无参数构造函数

    否则当你调用无参数构造函数时,将会编译错误对于一个普通的没有父类的类:

    TO a class that has not a explicit super class then it has an implicit superclass of Object,which does have a no-argument constructor.

    推荐去我的博客阅读更多:

    1.Java JVM、集合、多线程、新特性系列教程

    2.Spring MVC、Spring Boot、Spring Cloud 系列教程

    3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

    4.Java、后端、架构、阿里巴巴等大厂最新面试题

    觉得不错,别忘了点赞+转发哦!

  • 相关阅读:
    hihocoder 1038
    hihocoder 1039
    poj 2774
    bzoj 4690&&4602
    poj 2417
    STL
    poj 1026
    poj 1064
    poj 1861(prim)
    poj 1129
  • 原文地址:https://www.cnblogs.com/javastack/p/12836342.html
Copyright © 2011-2022 走看看