Làm thế nào để có thể thay đổi giá trị mặc định của constructor không tham số?

public class constructor {

    private String name;
    private String Id;
    private int age;

    public constructor() {
        Id = "pa122423";

    }

    public constructor(String name, int age) {
        this.name = name;
        this.age = age;

    }

    public String getName() {
        return name;
    }

    public String getId() {
        return Id;
    }

   

    public int getAge() {
        return age;
    }

    public static void main(String[] args) {
        constructor a = new constructor("Hoang", 20);
        System.out.println("Name: " + a.getName());
        System.out.println("Age: " + a.getAge());
        System.out.println("ID: " + a.getId());

    }

}

Mọi người giúp e với ạ… s cái ID n vẫn chỉ ra giá trị null

Bạn sai hơi bị “nặng” rồi đấy!
Điều gì khiến bạn nghĩ hàm dựng không tham số được gọi khi bạn gọi đến hàm dựng 2 tham số???

- Tôi muốn gọi xe 3 bánh.
- Vâng, xe 1 bánh của anh đây, thưa quý khách.

2 Likes

E mới học OOP… nhma e nghĩ cái cst không tham số sẽ được gọi trc chứ, bvi nó khởi tạo giá trị ban đầu mà

À thôi e hiểu rồi… v phải truyền qua setter thôi ))

Trong constuctor khi bác khởi tao đối tượng có gán giá trị gì cho Id đâu mà không null

Constructor có thể gọi lẫn nhau nhé. Trong trường hợp bạn muốn các constructor khác luôn gọi default constructor thì thêm this() vào.

public constructor(String name, int age) {
    this();
    ...
}
3 Likes

e gán ở cái constructor không tham số bên trên kìa bác… v nên lúc khởi tạo cố tình không truyền vào để xem gtri mặc định có bị đổi k ấy

uây được rồi… cảm ơn b nhá!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?