I've been working on a lab for my Intro to Comp Sci course and I've run into this issue:
As per the instructions, I must have every method that answer the specific question (Ex: Problem 5.9, method is fivePointNine() and must be called within main by another class (Assignment6.main). My problem here is that main is static and the final method I need to call for the lab is non-static, so it will not allow me to compile and run. The three errors I have are related to multiSphere(x). The specific error is "Cannot make a static reference to the non-static method 'multiSphere(double)' from the type Assignment6."
public class Assignment6
{
public Sphere newSphere = new Sphere();
public Assignment6 A6 = new Assignment6();
public static int x;
public static void main(String[] args)
{
x = 2 + (int)(Math.random() * ((10 - 2) + 1));
multiSphere(x);
x = 2 + (int)(Math.random() * ((10 - 2) + 1));
multiSphere(x);
x = 2 + (int)(Math.random() * ((10 - 2) + 1));
multiSphere(x);
}
public void multiSphere(double diameter)
{
Sphere.inputDiameter(diameter);
Sphere.volumeCalc(diameter);
Sphere.surfaceAreaCalc(diameter);
toString();
}
public String toString()
{
return "The diameter of this sphere is " + Sphere.inputDiameter(x) + ", the volume is " + Sphere.volumeCalc(x) + ", and the surface area is " + Sphere.surfaceAreaCalc(x) + ". ";
}
My second class is called Sphere and looks like this:
public class Sphere
{
public Assignment6 newA6 = new Assignment6();
public static double volume;
public static double surfaceArea;
public static double inputDiameter(double diameter)
{
return diameter;
}
public static double volumeCalc(double diameter)
{
// Volume = (4.0/3.0)(pi)(r)^3
volume = (4.0/3.0) * (Math.PI) * Math.pow((diameter/2.0), 3);
return volume;
}
public static double surfaceAreaCalc(double diameter)
{
// Surface area = (4)(pi)(r)^2
surfaceArea = (4) * (Math.PI) * (Math.pow((diameter/2.0), 2));
return surfaceArea;
}
}
I'm not exactly sure how to call the multiSphere(x) in the main method without running into the errors I've been getting. I feel like I'm missing something so simple.