Hỏi về lệnh copy Constructor Java

class Student6{  
    int id;  
    String name;  
    Student6(int i,String n){  
    id = i;  
    name = n;  
    }  
      
    Student6(Student6 s){  
    id = s.id;  
    name =s.name;  
    }  
    void display(){System.out.println(id+" "+name);}  
   
    public static void main(String args[]){  
    Student6 s1 = new Student6(111,"Hoang");  
    Student6 s2 = new Student6(s1);  
    s1.display();  
    s2.display();  
   }  
}   

Em mới tập tành học Java thôi anh chị cho em hỏi là dòng Student6(Student6 s) là thế nào ạ, trong Constructor chỉ truyền đối số thôi vậy Student6 s là thế nào ai giúp đỡ em về kiến thức này với.

1 Like
Student A = new Student(15, "A"); => tạo ra 1 sinh viên A với id = 15.

Student B = new Student(A) => Bạn tạo ra 1 sinh viên giống như sinh viên A.
2 Likes

Cho mình cảm ơn nhé :slight_smile:

Cho hỏi Copy costructor dùng trong trường hơp nào và để làm gi vậy .Giống trường hợp trên mình tạo thêm 1 sv giống A để làm gì ?

dùng để tạo thêm một đối tượng khác A nhưng có các thuộc tính giống như A ( A và B có thuộc tính giống nhau nhưng lưu ở 2 ô nhớ khác nhau )

3 Likes

Mình hỉu vấn đề đó .Ý mình thắc mắc trong chương trình quản lý thì copy như vậy để làm gì ? Nếu trong game 1 dev muốn tạo nhiều npc có cùng hoạt dong dể thả vào map thì có thể hỉu dc nhưng ct ql làm vậy có ich lợi gi đâu.:thinking:

Đơn giản là để copy.
Bạn có List A.
Bạn muốn có List B giống List A hiện thời.
Bạn muốn sửa chữa List B không làm thay đổi List A?

List B = new ArrayList(List A);
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?