Hỏi Nhập môn java

dạ mọi người có thể giúp em kiểm tra bài này được không ạ

package middleterm;


import java.util.Scanner;


public class HinhHoc {






class Hinh2D extends HinhHoc{}

class Hinh3D extends HinhHoc{}


class HinhTron extends Hinh2D{// Thành phần dữ liệu
private int r; // bán kính



// Thành phần xử lý
public HinhTron(int r) {
this.r = r;
}

public void display() {
System.out.println("Bán kinh = " + r);
}

public void getInfo() {
Scanner input = new Scanner(System.in);
do {
System.out.print("Nhập bán kính: ");
r = input.nextInt();
} while (r < 0);
}

public int getR() {
return r;
}

public void setR(int r) {
this.r = r;
}

public double getArea() {
double pi = 3.14;
return (r * r * pi);
}
}


class HinhVuong extends Hinh2D{
private int a; // cạnh


// Thành phần xử lý
public HinhVuong(int a) {
this.a = a;
}

public void display() {
System.out.println("Cạnh = " + a);
}

public void getInfo() {
Scanner input = new Scanner(System.in);
do {
System.out.print("Nhập cạnh: ");
a = input.nextInt();
} while (a < 0);
}

public int getA() {
return a;
}

public void setA(int a) {
this.a = a;
}

public int getArea() {
return (a * a);
}
}


class HinhTamGiac extends Hinh2D{
private int h; // đường cao
private int d; // cạnh đáy
// Thành phần xử lý
public HinhTamGiac(int h, int d) {
this.h = h;
this.d = d;
}

public void display() {
System.out.println("Đường cao = " + h);

System.out.println("Cạnh đáy = " + d);
}

public void getInfo() {
Scanner input = new Scanner(System.in);
do {
System.out.print("Nhập đường cao: ");
h = input.nextInt();
} while (h < 0);
do {
System.out.print("Nhập cạnh đáy: ");
d = input.nextInt();
} while (d < 0);
}

public int getH() {
return h;
}

public void setH(int h) {
this.h = h;
}

public int getD() {
return d;
}

public void setD(int d) {
this.d = d;
}

public int getArea() {
return (h * d / 2);
}
}


class HinhTru extends Hinh3D{
private int r; // bán kính
private int h; // đường cao
private double pi = 3.14;

// Thành phần xử lý
public HinhTru(int r, int h) {
this.r = r;
this.h = h;
}

public void display() {
System.out.println("Bán kinh = " + r);

System.out.println("Đường cao = " + h);
}


public void getInfo() {
Scanner input = new Scanner(System.in);
do {
System.out.print("Nhập bán kính: ");
r = input.nextInt();
} while (r < 0);
do {
System.out.print("Nhập đường cao: ");
h = input.nextInt();
} while (h < 0);
}

public int getR() {
return r;
}

public void setR(int r) {
this.r = r;
}

public int getH() {
return h;
}

public void setH(int h) {
this.h = h;
}

public double getAreaBottom() {
return (r * r * pi);
}

public double getAreaAround() {
return (2 * pi * r * h);
}

public double getAreaFull() {
return (2 * r * r * pi + 2 * pi * r * h);
}

public double getVolume() {
return ( r * r * pi * h);
}
}

class HinhLapPhuong extends Hinh3D{
private int a; // cạnh


// Thành phần xử lý
public HinhLapPhuong(int a) {
this.a = a;
}

public void display() {
System.out.println("Cạnh = " + a);
}

public void getInfo() {
Scanner input = new Scanner(System.in);
do {
System.out.print("Nhập cạnh: ");
a = input.nextInt();
} while (a < 0);
}

public int getA() {
return a;
}

public void setA(int a) {
this.a = a;
}

public double getAreaAround() {
return (4 * a * a);
}

public double getAreaFull() {
return (6 * a * a);
}

public double getVolume() {
return (a * a * a);
}
}


public static void main(String[] args) {
HinhTron ht = new HinhTron(10);
ht.display();
ht.getInfo();
ht.getArea();
System.out.print("Diện tích hình tròn: " + ht.getArea());

HinhVuong hv = new HinhVuong(10);
hv.display();
hv.getInfo();
hv.getArea();
System.out.print("Diện tích hình vuông: " + hv.getArea());

HinhTamGiac htg = new HinhTamGiac(10,20);
htg.display();
htg.getInfo();
htg.getArea();
System.out.print("Diện tích hình tam giác: " + htg.getArea());

HinhTru htr = new HinhTru(5,10);
htr.display();
htr.getInfo();
htr.getVolume();
System.out.print("Thể tích hình trụ: " + htr.getVolume());

HinhLapPhuong hlp = new HinhLapPhuong(10);
hlp.display();
hlp.getInfo();
hlp.getVolume();
System.out.print("Thể tích hình lập phương: " + hlp.getVolume());
}
}



93947570_229673221632222_3437604816270917632_o.jpg
 
  • Chủ đề
    hỏi đáp
  • Sửu Nguyễn

    ⭐️⭐️⭐️⭐️⭐️
    Code của bạn thì không sai nhưng bạn làm sai yêu cầu đề bài rồi nhé
    Thứ 1: Class HinhHoc không có bất kỳ phương thức nào theo yêu cầu
    Thứ 2: Yêu cầu tạo 5 đối tượng hình học chứ không phải đối tượng cụ thể
    Bonus: Bạn nên chia ra thành từng file cụ thể cho dễ hiểu đừng để chung trong một class như vậy
     
    em sửa lại như vậy được ko ah ( tại vì này là bài kiểm tra nộp bằng word nên em mới làm vô chung ah )
    em chuyển nó thành lớp trừu tượng rồi mà tại sao 2 đối tượng khởi tạo cuối cùng nó lại lỗi vậy ạ

    package middleterm;


    import java.util.Scanner;


    public abstract class HinhHoc {
    }
    abstract class Hinh2D extends HinhHoc{
    public abstract double getArea();
    }

    abstract class Hinh3D extends HinhHoc{
    public abstract double getAreaBottom();
    public abstract double getAreaAround();
    public abstract double getAreaFull();
    public abstract double getVolume();
    }


    class HinhTron extends Hinh2D{// Thành phần dữ liệu
    private int r; // bán kính



    // Thành phần xử lý
    public HinhTron(int r) {
    this.r = r;
    }


    public HinhTron() {
    // TODO Auto-generated constructor stub
    }


    public void display() {
    System.out.println("Bán kinh = " + r);
    }

    public void getInfo() {
    Scanner input = new Scanner(System.in);
    do {
    System.out.print("Nhập bán kính: ");
    r = input.nextInt();
    } while (r < 0);
    }

    public int getR() {
    return r;
    }

    public void setR(int r) {
    this.r = r;
    }
    @Override
    public double getArea() {
    return (r * r * Math.PI);
    }
    }


    class HinhVuong extends Hinh2D{
    private int a; // cạnh


    // Thành phần xử lý
    public HinhVuong(int a) {
    this.a = a;
    }

    public HinhVuong() {
    // TODO Auto-generated constructor stub
    }


    public void display() {
    System.out.println("Cạnh = " + a);
    }

    public void getInfo() {
    Scanner input = new Scanner(System.in);
    do {
    System.out.print("Nhập cạnh: ");
    a = input.nextInt();
    } while (a < 0);
    }

    public int getA() {
    return a;
    }

    public void setA(int a) {
    this.a = a;
    }
    @Override
    public double getArea() {
    return (a * a);
    }
    }


    class HinhTamGiac extends Hinh2D{
    private int h; // đường cao
    private int d; // cạnh đáy
    // Thành phần xử lý
    public HinhTamGiac(int h, int d) {
    this.h = h;
    this.d = d;
    }

    public HinhTamGiac() {
    // TODO Auto-generated constructor stub
    }


    public void display() {
    System.out.println("Đường cao = " + h);

    System.out.println("Cạnh đáy = " + d);
    }

    public void getInfo() {
    Scanner input = new Scanner(System.in);
    do {
    System.out.print("Nhập đường cao: ");
    h = input.nextInt();
    } while (h < 0);
    do {
    System.out.print("Nhập cạnh đáy: ");
    d = input.nextInt();
    } while (d < 0);
    }

    public int getH() {
    return h;
    }

    public void setH(int h) {
    this.h = h;
    }

    public int getD() {
    return d;
    }

    public void setD(int d) {
    this.d = d;
    }
    @Override
    public double getArea() {
    return (h * d / 2);
    }
    }


    abstract class HinhTru extends Hinh3D{
    private int r; // bán kính
    private int h; // đường cao

    // Thành phần xử lý
    public HinhTru(int r, int h) {
    this.r = r;
    this.h = h;
    }

    public void display() {
    System.out.println("Bán kinh = " + r);

    System.out.println("Đường cao = " + h);
    }


    public void getInfo() {
    Scanner input = new Scanner(System.in);
    do {
    System.out.print("Nhập bán kính: ");
    r = input.nextInt();
    } while (r < 0);
    do {
    System.out.print("Nhập đường cao: ");
    h = input.nextInt();
    } while (h < 0);
    }

    public int getR() {
    return r;
    }

    public void setR(int r) {
    this.r = r;
    }

    public int getH() {
    return h;
    }

    public void setH(int h) {
    this.h = h;
    }
    @Override
    public double getAreaBottom() {
    return (r * r * Math.PI);
    }
    @Override
    public double getAreaAround() {
    return (2 * Math.PI * r * h);
    }
    @Override
    public double getAreaFull() {
    return (2 * r * r * Math.PI + 2 * Math.PI * r * h);
    }
    @Override
    public double getVolume() {
    return ( r * r * Math.PI * h);
    }
    }

    abstract class HinhLapPhuong extends Hinh3D{
    private int a; // cạnh


    // Thành phần xử lý
    public HinhLapPhuong(int a) {
    this.a = a;
    }

    public void display() {
    System.out.println("Cạnh = " + a);
    }

    public void getInfo() {
    Scanner input = new Scanner(System.in);
    do {
    System.out.print("Nhập cạnh: ");
    a = input.nextInt();
    } while (a < 0);
    }

    public int getA() {
    return a;
    }

    public void setA(int a) {
    this.a = a;
    }
    @Override
    public double getAreaAround() {
    return (4 * a * a);
    }
    @Override
    public double getAreaFull() {
    return (6 * a * a);
    }
    @Override
    public double getVolume() {
    return (a * a * a);
    }


    public static void main(String[] args) {
    Hinh2D ht = new HinhTron(10);
    System.out.print("Diện tích hình tròn: " + ht.getArea());

    Hinh2D hv = new HinhVuong(10);
    System.out.print("Diện tích hình vuông: " + hv.getArea());

    HinhHoc htg = new HinhTamGiac(10,5);
    System.out.print("Diện tích hình tam giác: " + hv.getArea());

    Hinh3D htr = new HinhTru(5,10);
    System.out.print("Thể tích hình trụ: " + htr.getVolume());

    Hinh3D hlp = new HinhLapPhuong(5);
    System.out.print("Thể tích hình lập phương: " + hlp.getVolume());
    }
    }
     

    Sửu Nguyễn

    ⭐️⭐️⭐️⭐️⭐️
    Theo đề bài của bạn thì là tạo đối tượng hình tròn chứ không phải đối tương 2D 3D
    Đây là đáp án của mình cho bài này, mình sẽ viết ngắn gọn các class nhé
    Bạn có thể dùng abstract hoặc không đều được
    Nhưng mình sẽ dùng abstract

    (Đề bài bài này có vẻ hơi nhập nhằng chưa đủ dữ liệu)

    abstract class HinhHoc{abstract void display();} // Phương thức display là chung cho tất cả để hiển thị thông tin

    abstract class Hinh2D extends HinhHoc{abstract double getArea();} // Phương thức tính diện tích

    abstract class Hinh3D extends HinhHoc{abstract double getVolume(); abstract double getArea();} // Phương thức tính thể tích

    class HinhTron extrend Hinh2D{
    private final double r;

    public HinhTron(double r){this.r = r}

    @Override
    public void display(){System.out.println("Hinh tron dien tich: " + getArea());}

    @Override
    public double getArea{return this.r * this.r * 3.14}
    }

    /// Các hình còn lại tương tự
    public class Main{
    public static void main(String[] args){
    HinhHoc hinhTron = new HinhTron(100);
    hinhTron.display()
    }
    }

    /// Đề bài chưa rõ ràng là tính diện tích qua đâu
    /// Nếu đối tượng HinhTron không có phương thức gì bạn cũng không thể làm gì được
     

    Sửu Nguyễn

    ⭐️⭐️⭐️⭐️⭐️
    Bạn không nên để các class trong cùng một file như vậy chứ
    Lúc nộp bài thì copy hết từng file chứ để thế này dễ lỗi lắm
     

    Thống kê

    Chủ đề
    100,796
    Bài viết
    467,652
    Thành viên
    339,870
    Thành viên mới nhất
    IDM Guru
    Top