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 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示