我对java有点新,我最近学习了一些方法(太酷了!)。我想知道是否可以在我的main方法中声明一个变量并在其他方法中使用它。
我想要做的是使用方法创建一个计算器(仅适用于这个新概念的练习),但我不想每次在每个方法中声明变量。
以下是代码的骨架结构:
class GS1{
public static void main (String[]args){
Scanner input = new Scanner(System.in);
System.out.println("Enter the math operation to be completed: ");
String opt = input.nextLine();
int x,y; // I tried declaring variables here
switch(opt){
case "addition" :
// addition method goes here
break;
case "subtraction":
//subtraction method goes here
break;
case "multiplication":
//multiplication method goes here
break;
case "division":
//division method goes here
break;
}
}
static void addition(){
System.out.println("Enter first value for addition");
x=input.nextint(); // i get error stating both "x" and "input" cannot be resolved as a variable
}
static void subtration(){
}
static void Multiplication(){
}
static void Division(){
}
}
答案 0 :(得分:5)
您应该将变量置于所有方法之外但在类中,从而创建全局访问。
public class ClassName
{
public int x;
public int y;
public void method1()
{
x = 3;
}
public void method2()
{
y = 1;
}
}
答案 1 :(得分:3)
在类级别移动变量,使其成为类中的一个字段。
由于您正在学习,最好不要使用static
字段或方法,除了main
方法。
答案 2 :(得分:1)
更好地整理代码,制作如下代码:
class Operation {
public double addition(double... value) {
double result = 0;
for (double i : value) {
result += i;
}
return result;
}
public double subtration(.....) {
// .........................
return 0.0;
}
public double multiplication(.....) {
// .........................
return 0.0;
}
public double division(.....) {
// .........................
return 0.0;
}
}
public class GS1 {
public static void main(String[] args) {
Operation operations=new Operation();
//read value code
double result=operations.addition(value);
//print result code
}
}
答案 3 :(得分:1)
你需要这样的东西:
class GS1 {
public static int x;
public static Scanner input;
public static void main(String[] args) {
input = new Scanner(System.in);
System.out.println("Enter the math operation to be completed: ");
String opt = input.nextLine();
int x, y; // I tried declaring variables here
switch(opt){
case "addition" :
// addition method goes here
break;
case "subtraction":
//subtraction method goes here
break;
case "multiplication":
//multiplication method goes here
break;
case "division":
//division method goes here
break;
}
}
static void addition() {
System.out.println("Enter first value for addition");
x=input.nextint(); // i get error stating both "x" and "input" cannot
// be resolved as a variable
}
static void subtration() {
}
static void Multiplication() {
}
static void Division() {
}
}
请记住在字段声明(x和输入)中使用“static”修饰符,不能对非静态字段进行静态引用。
更好的方法是使用对象而不是将所有方法放在一个类(GS1)中。例如,在评论中创建像Marged建议的Calculator类