01/10/2018, 11:51

Tính kế thừa : Mảng đối tượng

Mọi người cho em hỏi :
Giả sử .
-Em có một lớp Diem có hai hàm constructor có tham số và không tham số . Bây giờ có lớp TapDiem thừa kế từ lớp Diem gồm 3 đối tượng của lớp điểm .
-Vậy viết hàm constructor cho lớp TapDiem như thế nào ? Để nó khởi tạo cho cả 3 đối tượng của lớp cơ sở Diem .(Có gì mong được mọi người chỉ giáo)

Dark.Hades viết 13:59 ngày 01/10/2018

Bạn nên cho ngôn ngữ bạn dùng lên đây.

Lớp Diem
{
  Diem()
  {
    // Somethings here
  }
  Diem(<type1> v1, <type2> v2, <type3> v3)
  {
    m_v1 = v1;
    m_v2 = v2;
    m_v3 = v3;
  }
  protected <type1> m_v1;
  protected <type2> m_v2;
  protected <type3> m_v3;
}

Kế thừa:

Lớp TapDiem Kế_Thừa Diem
{
  // Java
  TapDiem()
  {
    super();
  }
  TapDiem(<type1> v1, <type2> v2, <type3> v3, <typeN> vN>)
  {
    super(v1, v2, v3);
  }

  // C++
  TapDiem() : Diem(){}
  TapDiem(<type1> v1, <type2> v2, <type3> v3, <typeN> vN>) : Diem(v1, v2, v3){}
  
}
rogp10 viết 13:59 ngày 01/10/2018

“Mảng đối tượng” là composition mà

INfo viết 14:07 ngày 01/10/2018

Thì ở phần tập diểm bạn khai báo:
Diem d1,d2,d3;
Khi khởi tạo thì
d1=new Diem();
d2=new Diem();
d3=new Diem();

INfo viết 13:59 ngày 01/10/2018
public class Diem {
	private int tdX;
	private int tdY;
	public Diem(int tdX, int tdY) {
		super();
		this.tdX = tdX;
		this.tdY = tdY;
	}

public class TamGiac {
Diem diemA, diemB, diemC;
double kcAB, kcAC, kcBC, chuVi, dienTich;

public double tinhKC2Diem(Diem A, Diem B) {
	return Math.sqrt(Math.pow((A.getTdX() - B.getTdX()), 2) + Math.pow((A.getTdY() - B.getTdY()), 2));
}

public void tinhKC3Canh() {
	kcAB = tinhKC2Diem(diemA, diemB);
	kcAC = tinhKC2Diem(diemA, diemC);
	kcBC = tinhKC2Diem(diemB, diemC);
}

public void tinhChuVi() {
	chuVi = kcAB + kcAC + kcBC;
}

public void tinhDienTich() {
	double p = chuVi / 2;
	dienTich = Math.sqrt(p * (p - kcAB) * (p - kcAC) * (p - kcBC));
}

public void inTTTamGiac() {
	tinhKC3Canh();
	tinhChuVi();
	tinhDienTich();
	System.out.println("Độ dài cạnh AB: " + kcAB);
	System.out.println("Độ dài cạnh AC: " + kcAC);
	System.out.println("Độ dài cạnh BC: " + kcBC);
	System.out.println("Chu vi tam giác: " + chuVi);
	System.out.println("Diện tích của tam giác: " + dienTich);
}

public void nhapTTTamGiac(int x1,int y1,int x2,int y2,int x3,int y3){
		diemA=new Diem(x1,y1);
		diemB=new Diem(x2,y2);
		diemC=new Diem(x3,y3);
}
public static void main(String[] args) {
	TamGiac a=new TamGiac();
	a.nhapTTTamGiac(1,0,2,1,3,5);
	a.inTTTamGiac();
}

}
public int getTdX() {
return tdX;
}
public int getTdY() {
return tdY;
}

}

Đây là 1 bài t làm về tam giác (Java nhé)

Uchiha Sasuke viết 14:07 ngày 01/10/2018

TapDiem extends Diem , có gì đó không đúng rồi :3
có thể làm như thế này :

class TapDiem {
    List<Diem> listDiem ;

    public TapDiem(Diem d1,Diem d2, Diem d3){
        listDiem = new ArrayList<>();
        listDiem.add(d1);
        listDiem.add(d2);
        listDiem.add(d3);
   }
}
Bài liên quan
0