Реализация абстрактного класса для фигур, результат не такой, как ожидалось [closed]

/Целью проекта является расширение форм абстрактного класса для вывода объема и площади поверхности сферы, цилиндра и конуса в массив. Когда я внедряю этот код, все мои выходные данные — нули, независимо от того, что я использую в аргументе. Я не уверен, конструктор это или что все вместе пропускает вычисления./

public abstract class Shape {
    abstract double surface_area();
    
    abstract double volume();
    

}


public class Cone extends Shape{
        double radius;
        double height;
        double surface_area;
        double volume;
        
        Cone(double radius, double height){
        this.radius = radius;
        this.height = height;
        }
        @Override
        public double surface_area() {
            surface_area = (Math.PI * radius) * (radius +  Math.pow(( (Math.pow(height,2) + Math.pow(radius,2))), 0.5));
            return(surface_area);
        }
        @Override
        public double volume() {
            volume = ((height) / (3)) * ((Math.PI) * (Math.pow(radius, 2)));
            return(volume);
        }
            
        public String toString() {
            System.out.println("Cone Volume: " + volume);
            System.out.println("Cone Surface Area: " + surface_area);
            return("Volume: " + volume + " Surface Area: " + surface_area);
        }
}


public class Cylinder extends Shape {
    double radius;
    double height;
    double surface_area;
    double volume;
    
    Cylinder(double radius, double height){
    this.radius = radius;
    this.height = height;
    }
    @Override
    public double surface_area() {
        surface_area = (2 * Math.PI * radius * height) + (2 * Math.pow(radius,2));
        return(surface_area);
    }
    @Override
    public double volume() {
        volume = (height) * (Math.PI) * (Math.pow(radius, 2));
        return(volume);
    }
    public String toString() {
        System.out.println("Cylinder Volume: " + volume);
        System.out.println("Cylinder Surface Area: " + surface_area);
        return("Volume: " + volume + " Surface Area: " + surface_area);
    }
        
}


public class Sphere extends Shape {
    double radius;
    double surface_area;
    double volume;
    
    Sphere(double radius){
    this.radius = radius;
    }
    @Override
    public double surface_area() {
        surface_area = (4) * (Math.PI) * (Math.pow(radius,2));
        return(surface_area);
    }
    @Override
    public double volume() {
        volume = (4/3) * Math.PI * (Math.pow(radius, 3));
        return(volume);
    }
        
    public String toString() {
        System.out.println("Sphere Volume: " + volume);
        System.out.println("Sphere Surface Area: " + surface_area);
        return("Volume: " + volume + " Surface Area: " + surface_area);
    }
 
    }


import java.util.ArrayList;

public class ShapeArray {

    public static void main(String[] args) {
        double coneRad = 10;
        double coneHeight = 5;
        double cylinderRad = 7;
        double cylinderHeight = 9;
        double sphereRad = 45;
        
        Cone cone = new Cone(coneRad, coneHeight);
        Sphere sphere = new Sphere(sphereRad);
        Cylinder cylinder = new Cylinder(cylinderRad, cylinderHeight);
        
        
        ArrayList<Object> shapeArray = new ArrayList<Object>();
        shapeArray.add(cone.toString());
        shapeArray.add(cylinder.toString());
        shapeArray.add(sphere.toString());
        
        for(int i = 0; i < shapeArray.size(); i++) {
            shapeArray.get(i);
    
        
    }
   }
}

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *