在另一个类中存储值

时间:2016-12-27 17:52:52

标签: java

我创建了两个类,并且我正在尝试从“UserInterface”中获取用户的值。 class,但我希望它存储在我的第二个名为' Calculator'的课程中。

import java.util.Scanner;

public class UserInterface {

    public static void main (String Args[]) {
        Calculator calculator = new Calculator();
        Scanner input = new Scanner(System.in);
        System.out.println("Enter your first value: \t");
        input.nextInt(firstValue);
        System.out.println("Enter your second value: \t");
        input.nextInt(secondValue);
    }
}

我想要input.nextInt(firstValue);将值传递给计算器中的firstValue'如下所示。

public class Calculator {

    public int firstValue;
    public int secondValue;

    public Calculator(int firstValue, int secondValue) {
        this.firstValue = firstValue;
        this.secondValue = secondValue;         
    }
}

提前致谢。

4 个答案:

答案 0 :(得分:5)

func pullDown() { var temp = [TestTable]() for data in mydata { temp.append(data) } mydata.removeAll() mydata = temp self.tableView.reloadData() self.refresh.endRefreshing() } 返回值,您不会传递值。像这样:

Scanner.nextInt()

对你的两个输入执行此操作,然后在之后定义了可以将它们传递给类的构造函数的值:

int firstValue = input.nextInt();

此外,您应该在Calculator calculator = new Calculator(firstValue, secondValue); Calculator而不是private上填写字段。公共领域是不好的形式,有很多文献在这里简单的答案解释它比我更好。但是这个想法归结为一个对象应该只拥有自己的成员,并且只在需要时才能访问这些成员(通常是Java中的getter / setter)。

答案 1 :(得分:3)

您可以使用以下代码:

public static void main (String Args[]) {
    Calculator calculator = new Calculator();
    Scanner input = new Scanner(System.in);
    System.out.println("Enter your first value: \t");
    calculator.firstValue = input.nextInt();
    System.out.println("Enter your second value: \t");
    calculator.secondValue = input.nextInt();
}

或像这样的代码:

public static void main (String Args[]) {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter your first value: \t");
    int firstValue = input.nextInt();
    System.out.println("Enter your second value: \t");
    int secondValue = input.nextInt();
    Calculator calculator = new Calculator(firstValue, secondValue);
}

在第一个示例中,您在创建calculator实例后设置值。

在第二个实例中,您将使用所需的值创建calculator实例。

答案 2 :(得分:2)

您应该阅读有关面向对象编程的更多信息,这是一个非常简单的问题。您可以通过多种方式执行此操作,例如:

System.out.println("Enter your first value: \t");
int value = input.nextInt();
calculator.firstValue = value;

Scanner input = new Scanner(System.in);
System.out.println("Enter your first value: \t");
int firstValue = input.nextInt();
System.out.println("Enter your second value: \t");
int secondValue = input.nextInt();
Calculator calculator = new Calculator(firstValue, secondValue);

或者您可以使用setter设置值并将字段设为私有。但正如我之前所说,你应该了解更多有关OOP的信息

答案 3 :(得分:0)

nextInt()不接受任何争论!

简单地为计算器中的字段创建getter和setter,并在读取扫描仪时设置它们;

OR

另一种方法是在扫描器读取时将两个局部变量存储起来并将输入存储在那些局部变量中,然后最后调用计算器的参数化构造函数将局部变量作为参数传递。