java无忧网

标题: 设计一个几何图形抽象类 设计一个平面图形抽象类和一个立体图形抽象类 [打印本页]

作者: java无忧网    时间: 2020-4-20 11:42
标题: 设计一个几何图形抽象类 设计一个平面图形抽象类和一个立体图形抽象类


public class Test {
        public static void main(String[] args) {
                Ball ball=new Ball(5);
                ball.print();
                System.out.println("面积:"+ball.graphicA());
                System.out.println("体积:"+ball.graphicV());
               
                Cylinder c=new Cylinder(3,5);
                c.print();
                System.out.println("面积:"+c.graphicA());
                System.out.println("体积:"+c.graphicV());
               
                Cone cone=new Cone(7,8);
                cone.print();
                System.out.println("面积:"+c.graphicA());
                System.out.println("体积:"+c.graphicV());
               
                Rectangle  r=new Rectangle(3,5);
                r.print();
                System.out.println("表面积:"+r.graphicA());
                System.out.println("周长:"+r.graphicL());
               
                Triangle  t=new Triangle(3,4,5);
                t.print();
                System.out.println("表面积:"+t.graphicA());
                System.out.println("周长:"+t.graphicL());
               
                Circle  circle=new Circle(3);
                circle.print();
                System.out.println("表面积:"+circle.graphicA());
                System.out.println("周长:"+circle.graphicL());
               
               
        }
}
abstract class GeometricGraph {

         public abstract void print();
}
abstract class ThreeDimensionalGraphics extends GeometricGraph{
       
        public abstract double graphicA();
        public abstract double graphicV();
}
//球类
class Ball extends ThreeDimensionalGraphics{
       
        private double side01;
       
        public Ball(double side01) {
                this.side01 = side01;
        }
        public void setSide01(double side01){
                this.side01=side01;
        }
        public double getSide01(){
                return this.side01;
        }
        public double graphicA(){
                return 4*3.14*side01*side01;
        }
        public double graphicV(){
                double v=3.14*3/4*side01*side01*side01;
                return v;
        }
        public void print(){
                System.out.println("这是一个球类计算方式:");
        }
}
//这是一个圆柱体
class Cylinder extends ThreeDimensionalGraphics{
        private double side01;
        private double side02;
       
        public Cylinder(double side01, double side02) {
               
                this.side01 = side01;
                this.side02 = side02;
        }
        public void setSide01(double side01){
                this.side01=side01;
        }
        public void setSide02(double side02){
                this.side02=side02;
        }
        public double getSide01(){
                return this.side01;
        }
        public double getSide02(){
                return this.side02;
        }
        public double graphicA(){
                return 2*3.14*side01*side01+2*3.14*side01*side02;
        }
        public double graphicV(){
                return 3.14*side01*side01*side02;
        }
       
        public void print() {
                System.out.println("这是一个圆柱体计算方式:");
               
        }
}
//圆锥类
class Cone extends ThreeDimensionalGraphics{
        private double side01;
        private double side02;
       
        public Cone(double side01, double side02) {
       
                this.side01 = side01;
                this.side02 = side02;
        }
        public void setSide01(double side01){
                this.side01=side01;
        }
        public void setSide02(double side02){
                this.side02=side02;
        }
        public double getSide01(){
                return this.side01;
        }
        public double getSide02(){
                return this.side02;
        }
        public double graphicA(){
                return 3.14*side01*side01+3.14*side01*java.lang.Math.sqrt(side02*side02+side01*side01);
        }
        public double graphicV(){
                return 3.14/3*side01*side01*side02;
        }
        @Override
        public void print() {
               
                System.out.println("这是一个圆锥体计算方式:");
        }
}


abstract class PlantGraph extends GeometricGraph{
       
        public abstract double graphicA();
        public abstract double graphicL();
}
//矩形类
class Rectangle extends PlantGraph{
        private double side01;
        private double side02;
       
        public Rectangle(double side01, double side02) {
       
                this.side01 = side01;
                this.side02 = side02;
        }
        public void setSide01(double side01){
                this.side01=side01;
        }
        public void setSide02(double side02){
                this.side02=side02;
        }
        public double getSide01(){
                return this.side01;
        }
        public double getSide02(){
                return this.side02;
        }
        public double graphicA(){
                return side01*side02;
        }
        public double graphicL(){
                return 2*(side01+side02);
        }
       
        public void print() {
                System.out.println("这是一个矩形类计算方式:");
               
        }

       
}
//三角形
class Triangle extends PlantGraph{
        private double side01;
        private double side02;
        private double side03;
       
        public Triangle(double side01, double side02, double side03) {
               
                this.side01 = side01;
                this.side02 = side02;
                this.side03 = side03;
        }
        public void setSide01(double side01){
                this.side01=side01;
        }
        public void setSide02(double side02){
                this.side02=side02;
        }
        public void setSide03(double side03){
                this.side03=side03;
        }
        public double getSide01(){
                return this.side01;
        }
        public double getSide02(){
                return this.side02;
        }
        public double getSide03(){
                return this.side03;
        }
        public double graphicA(){
                return side01*(java.lang.Math.sqrt(java.lang.Math.abs(side03*side03-side01*side01))/2);
        }
        public double graphicL(){
                return side01+side02+side03;
        }
        @Override
        public void print() {
                System.out.println("这是一个三角形计算方式:");
               
        }
       
}
//圆形类
class Circle extends PlantGraph{
        private double side01;
       
        public Circle(double side01) {
       
                this.side01 = side01;
        }
        public void setSide01(double side01){
                this.side01=side01;
        }
        public double getSide01(){
                return this.side01;
        }
        public double graphicA(){
                return 3.14*side01*side01;
        }
        public double graphicL(){
                return 2*3.14*side01;
        }
        @Override
        public void print() {
                System.out.println("这是一个圆形类计算方式:");
               
        }
}






欢迎光临 java无忧网 (http://www.javawyw.com/) Powered by Discuz! X3.2