01/10/2018, 11:29

Hỏi về câu lệnh với new trong Java

Em không hiểu chỗ new CD() trong lệnh st.ThemCD(new CD());
Ai giải thích giải thích giùm em vs ạ~

//Contructor chưa các biến của class CD
public CD(int maCD, int soBaiHat, String tuaCD, String caSi, double giaThanh) {
		super();
		this.maCD = maCD;
		this.soBaiHat = soBaiHat;
		this.tuaCD = tuaCD;
		this.caSi = caSi;
		this.giaThanh = giaThanh;
	}
``
``
//Contructor có nhiệm vụ thêm 1 CD vào mảng ds
public boolean ThemCD(CD cd) {
    	for(int i=0 ; i < count; i++) 
    		if(ds[i].getMaCD()==cd.getMaCD())
    			return false;
    	if(ds.length== count)
    		return false;
    	ds[count]=cd;
    	count++;
    	return true;
    }
// Class chứa hàm main
{
DanhSachCD st = new DanhSachCD(10);
		st.ThemCD(new CD());
		CD cd = new CD(01,3,"Lam Truong","Mai Mai",8000000);
}
hunter viết 13:31 ngày 01/10/2018

Code này hình như thiếu hàm rồi đúng không :v
hiểu như này nhé :
DanhSachCD st = new DanhSachCD(10);
Chỗ này là nó gọi thằng class “DanhSachCD” và đặt với tên là “st” với danh sách là 10.
Sau khi gọi thì hàm:
“st.ThemCD(new CD());”
Hàm này gọi tới thằng themCD trong class "DanhSachCD " mà mình đã đặt tên.
Sau khi gọi xong thì bắt đầu truyền giá trị vào:
CD cd = new CD(01,3,“Lam Truong”,“Mai Mai”,8000000);

Hi vọng bạn hiểu =="

Phan Vũ viết 13:44 ngày 01/10/2018

trong hàm ThemCD có biến cd thuộc kiểu dữ liệu CD thì tại sao khi gọi nó mình phải có từ khóa new CD(), bạn giải thích cho mình chỗ này được k?

Văn Dương viết 13:36 ngày 01/10/2018

Nó tương đương thế này:

CD cd = new CD();
ThemCD(cd);

Tức là thay vì khởi tạo 1 đối tượng của lớp CD rồi truyền vào hàm thì người ta khởi tạo luôn trong dấu () của hàm cần truyền.

Tao Không Ngu. viết 13:39 ngày 01/10/2018

Hi Phan Vũ
Bạn có thể tìm một khóa học Java cơ bản hoặc đọc Java-core .

Bài liên quan
0