Oh duh... I forgot about that. Add the keyword 'static' to your method signatures
public static double cube(double value)
public static double square(double value)
the static keyword means you want the function to work "statically" rather than on instanced variables. Here's a brief explaination of static and instance:
Java is completely object oriented. So, everything has to be run from an object. However, when the JVM starts, it creates a "static" version of each class. There is only one static version of each class/JVM. To call a static method, you use:
className.staticMethodName(params);
Instance variables are kind of like copies of the object. They have different values between objects, and must be created before they can be used. To create an instance variable, use the "new" keyword.
To call a method in an instanced object, you use the object variable handle:
SomeObject a = new SomeObject();
a.doIt();
*Note: Java will let you use static methods/fields with instance variables, but realize that it is still operating on the static object, not the instance object. For this reason, if you're accessing something that's static, make it a habit to use the above mentioned method for static access.