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)
Tính kế thừa : Mảng đối tượng
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){}
}
1 Like
“Mảng đối tượng” là composition mà 
1 Like
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();
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é)
1 Like
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);
}
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?