/Целью проекта является расширение форм абстрактного класса для вывода объема и площади поверхности сферы, цилиндра и конуса в массив. Когда я внедряю этот код, все мои выходные данные — нули, независимо от того, что я использую в аргументе. Я не уверен, конструктор это или что все вместе пропускает вычисления./
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);
}
}
}