java编程。类。 常见平面图形(如三角形、圆、矩形和正方形等)的面积。利用抽象类,编写程序实现该

一道利用接口抽象类(图形)定义求图形面积的JAVA编程题。小妹不才,还请大家帮帮忙~~~

先定义接口:
public interface 图形{
public double area();
}

然后每个子类都实现这个接口,这里随便以长方形为例(其余类似):
public class 长方形 implements 图形{
private double 长;
private double 宽; //定义长方形的属性
public 长方形(){ //定义构造方法
this(1,1);
}
public 长方形(int x,int y){
长=x;
宽=y;
}
public double area(){ //实现面积计算方法(长方形)
return 长*宽;
}
}
要计算面积时只需:
图形 a = new 长方形();
a.area();
即可

这个是三角 圆和矩形的,你参考下,可以计算面积和周长

public class HHsa {
public static void main(String[] args) {
Geometric g=new Triangle(3,4,5);
System.out.println(g.getArea());
System.out.println(g.getPerimeter());

g=new Rectangle(2,3);
System.out.println(g.getArea());
System.out.println(g.getPerimeter());
g=new Circle(1);
System.out.println(g.getArea());
System.out.println(g.getPerimeter());

}
}
abstract class Geometric{
public abstract double getArea();

public abstract double getPerimeter();

}
class Triangle extends Geometric{
int a;
int b;
int c;
public Triangle(int a,int b,int c){
this.a=a;
this.b=b;
this.c=c;
}
public double getArea(){
double s=0.25*Math.sqrt((a+b+c)*(a+b-c)*(a-b+c)*(b+c-a));
return s;
}
public double getPerimeter(){
return a+b+c;
}
}
class Rectangle extends Geometric{
int a;
int b;
public Rectangle(int a,int b){
this.a=a;
this.b=b;
}
public double getArea(){
return a*b;
}
public double getPerimeter(){
return 2*(a+b);
}
}
class Circle extends Geometric{
int r;
public Circle(int r){
this.r=r;
}
public double getArea(){
return Math.PI*r*r;

}
public double getPerimeter(){
return 2*Math.PI*r;

}
}

abstract class Shape{
abstract double area();
}

class Circle extends Shape {
private double r;
private final double PI=3.14;

public Circle(double r) {
this.r = r;
}

@Override
double area() {
return PI*r*r;
}
}
 
class Rectangle extends Shape {
private double w;
private double h;

public Rectangle(double w, double h) {
this.w = w;
this.h = h;
}

@Override
double area() {
return w * h;
}
}

class Triangle extends Shape {
private double h;
private double l;

public Triangle(double h, double l) {
this.h = h;
this.l = l;
}

@Override
double area() {
return 0.5 * h * l;
}
}

class Square extends Rectangle {
public Square(double l) {
super(l, l);
}
}

public class Test {
public static void main(String[] args) {
System.out.println("圆 "+new Circle(1).area());
System.out.println("矩形 "+new Rectangle(4,2).area());
System.out.println("正方形 "+new Square(3).area());
System.out.println("三角形 "+new Triangle(3,4).area());
}
}


相关兴趣推荐

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网