gpt4 book ai didi

java - 方法调用和类中的类

转载 作者:行者123 更新时间:2023-11-30 03:48:27 25 4
gpt4 key购买 nike

我正在上大学暑期类(class),类(class)进展非常快,而且我对编程总体来说非常陌生(友善一点,哈哈)。

本周我们的作业之一是创建一个简单的计算器。以下是一些说明。

“Driver 类是唯一具有 main(String[] args) 方法的类。Driver 类应该调用 Menu 类中的方法来打印菜单,并且从该方法中应该调用 Actions 类中的方法菜单中的相应功能。”

我的代码还没有完成,我只是想弄清楚我在调用 Menu 类中的 getInput 方法时做错了什么。根据说明,方法调用似乎需要位于 Driver 类中。但是,当我尝试编译时,我遇到了一些错误。

Driver.java:6: error: cannot find symbol
String user = getInput("Enter: \n 1=Add \n 2=Subtract \n 3=Multiply \n 4=Divide");
^
symbol: method getInput(String)
location: class Driver
Driver.java:11: error: cannot find symbol
String s1 = getInput("Enter a numeric value: ");
^
symbol: method getInput(String)
location: class Driver
Driver.java:12: error: cannot find symbol
String s2 = getInput("Enter a numeric value: ");
^
symbol: method getInput(String)
location: class Driver
Driver.java:14: error: non-static variable user cannot be referenced from a static context
int userInt = Integer.parseInt(user);
^
Driver.java:70: error: Illegal static declaration in inner class Driver.Menu
public static String getInput(String prompt) {
^
modifier 'static' is only allowed in constant variable declarations
5 errors

......

import java.util.Scanner;
import java.io.*;

public class Driver {

String user = getInput("Enter: \n 1=Add \n 2=Subtract \n 3=Multiply \n 4=Divide");

public static void main(String[] args) {


String s1 = getInput("Enter a numeric value: ");
String s2 = getInput("Enter a numeric value: ");

int userInt = Integer.parseInt(user);
double result = 0;

switch (userInt) {
case 1:
result = addValues(s1, s2);
break;
case 2:
result = subtractValues(s1, s2);
break;
case 3:
result = multiplyValues(s1, s2);
break;
case 4:
result = divideValues(s1, s2);
break;

default:
System.out.println("You entered an incorrect value");
}

System.out.println("The answer is " + result);
}

private static double divideValues(String s1, String s2) {
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
double result = d1 / d2;
return result;
}

private static double multiplyValues(String s1, String s2) {
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
double result = d1 + d2;
return result;
}

private static double subtractValues(String s1, String s2) {
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
double result = d1 - d2;
return result;
}

private static double addValues(String s1, String s2)
throws NumberFormatException {
double d1 = Double.parseDouble(s1);
double d2 = Double.parseDouble(s2);
double result = d1 + d2;
return result;
}



public class Menu {
public static String getInput(String prompt) {
String user;
Scanner scan = new Scanner(System.in);
System.out.println(prompt);
return user = scan.nextLine();
}
}

}

这篇文章已经很长了,所以除非您愿意,否则我不会发布其余的说明。

最佳答案

getInput() 是另一个类中的静态方法,您应该按如下方式调用它:

String s1 = Menu.getInput("Enter a numeric value: ");
// ^ the name of the class should come before the method name

关于java - 方法调用和类中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25008310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com