簡體   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