qq_32293809 2015-10-26 08:05 采纳率: 0%
浏览 2420
已结题

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;
}

}

  • 写回答

9条回答 默认 最新

  • conleyfree 2015-10-26 08:56
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记