繁体   English   中英

当您可以使用 object.(variable_name) 调用 class 变量时,Java 中的构造函数有什么用?

[英]What is the use of Constructor in Java when you can call class variable using object.(variable_name)?

在下面的示例中,我们可以使用构造函数即 this 关键字或通过 object 初始化 class 变量。 有人可以回答为什么我们使用构造函数来传递值或初始化变量:

public class Car {
    
    String color;
    int price;

    public static void main(String[] args) {
        Car obj = new Car();
        obj.color = "Red";
        obj.price = 80;
        System.out.println(obj.color + " "+ obj.price);
        
        
        Car obj1 = new Car();
        obj1.color = "White";
        obj1.price = 70;
        System.out.println(obj1.color+" "+obj1.price);
    }
}

你可以,但你不应该。 构造函数有助于保持 object 的完整性。

当您将初始化序列放入构造函数时,您确保 object 将是一致的。 当您将初始化放在外面时,您将控制权委托给可能不知道您的 class 要求的其他实体。

例如,在您的示例中,您可以实例化没有颜色或价格的汽车,这可能是您的 model 的要求。 在更复杂的示例中,可能难以保持所有 object 字段一致,尤其是在您有计算字段的情况下。 这就是为什么这是一种可能导致错误的不良做法。

此外,不建议从外部访问 class 字段。 在 java 中,最好使用 get 和 set 方法,因为它提供了更多控制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM