java新手 主函数里面能创建静态方法吗

题目要求:
有一个抽象类ObjectVolume,如下所示:
abstract class ObjectVolume
{
abstract double getVolume(); //返回物体的体积
}
(1)编写球体类,立方体类和圆柱体类,它们是抽象类ObjectVolume的子类。
(2)编写一个公共类,其中包含main方法和static void get(ObjectVolume obj)方法。
(3)在main方法中,从键盘上输入1(表示球体)、2(表示立方体)、3(表示圆柱体)时,调用get方法可以分别得到球体、立方体、圆柱体的体积。

/*疑惑:我不知道static void get(ObjectVolume obj)方法干什么用的...怎么创建,是在主函数里创建吗?老师说要使用上转型什么的。。。不知道如何使用程序已经编好,请教如何修改使得static void get(ObjectVolume obj)方法能够用到*/
请尽量用简单的语言和方法修改...

package pzw;

import java.util.Scanner;

public class main {

public static void main(String[] args) {
    int a;
    double b;
    Scanner reader=new Scanner(System.in);
    System.out.println("请输入1(表示球体)、2(表示立方体)、3(表示圆柱体)");
    a=reader.nextInt();
    if(a==1)
    {
        double r,v;
        System.out.println("请输入半径");
        r=reader.nextDouble();
        qiu x=new qiu(r);
        v=x.getVolume();
        System.out.println("球体积为"+v);

    }
    else if(a==2)
    {
        double r,v;
        System.out.println("请输入边长");
        r=reader.nextDouble();
        lifangti x=new lifangti(r);
        v=x.getVolume();
        System.out.println("立方体体积为"+v);
    }
    else if(a==3)
    {
        double r,h,v;
        System.out.println("请输入半径和高");
        r=reader.nextDouble();
        h=reader.nextDouble();
        yuanzhu x=new yuanzhu(r,h);
        v=x.getVolume();
        System.out.println("圆柱体体积为"+v);
    }




}

}

package pzw;

abstract class ObjectVolume {

abstract double getVolume();

}

package pzw;

public class lifangti extends ObjectVolume{

double v;
lifangti(double a){
    v=a*a*a;
}
public double getVolume()
{
    return v;
}

}

package pzw;

public class qiu extends ObjectVolume{
double v=0;
qiu(double a)
{
v=4.0/3*a*a*a*3.14;
}
public double getVolume()
{
return v;
}

}

package pzw;

public class yuanzhu extends ObjectVolume
{
double v;
yuanzhu(double r,double h)
{

v=h*r*r*3.14;

}
public double getVolume()
{
return v;
}

}

静态方法直接用类名去调用,“类名.方法名”。
或者把static拿掉,就可以用new一个实例再用“实例名.方法名”来调用了。
可是我为什么看了半天没找的你的static void get(ObjectVolume obj)方法呢?

应该不能创建,但是能调用

看了半天,我觉得static void get(ObjectVolume obj)方法应该是用于得到obj对象的体积的。
但是这里的get方法居然是void的,我不明白这到底是怎么输出数据。
我的建议是直接把get方法的返回值改为double。
代码为
static double get(ObjectVolume obj)
{
return obj.getVolume();
}
main函数里的v=x.getVolume();这类的语句改为v=get(x);
其他部分不需要修改。
我觉得这题应该是考察多态性。

目测可能和设计模式有关,对于模式也不懂,想了半天也没想出来怎么设计才能用到这个get方法。

二楼描述的比较清楚了,用static比较方便调取求体积V的方法

get和set方法放在你创建的静态方法, 然后用实例化,对象调用 对象.get方法, 主函数里面能创建静态方法,但是只能在那函数里用

用数学的话建议用math. JAVA API 有调用 的类,和方法

我觉得你的get方法有问题吧,一般get方法会返回某个对象或者值,你这个可能使用来返回对象的吧。根据你传入的数字构造不同的对象。

3个子类继承父类,重写父类的get方法,返回对应的体积