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());
}
}