Java 从主方法内部的类访问包含变量的非静态方法?
我正在学习java,并试图创建一个简单的程序来帮助我找到一种方法(如果有的话)来访问同一类的主方法中的非静态方法。这就是我目前所拥有的Java 从主方法内部的类访问包含变量的非静态方法?,java,variables,methods,static,Java,Variables,Methods,Static,我正在学习java,并试图创建一个简单的程序来帮助我找到一种方法(如果有的话)来访问同一类的主方法中的非静态方法。这就是我目前所拥有的 import java.util.Scanner; public class MethodVariables { public int num1; public int num2; public int add = (num1 + num2); public int sub = (num1 - num2); pub
import java.util.Scanner;
public class MethodVariables
{
public int num1;
public int num2;
public int add = (num1 + num2);
public int sub = (num1 - num2);
public static void main(String[] args)
{
Scanner input = new Scanner (System.in);
System.out.println("Please enter the first number: ");
String num1 = input.nextLine();
System.out.println("Please enter the second number: ");
String num2 = input.nextLine();
input.close();
// I know these wouldn't work this way but this is just to show what I am trying to accomplish
addition(add);
subtraction(sub);
}
public void addition(int add)
{
System.out.println("The sum of the two is: " +add);
}
public void subtraction(int sub)
{
System.out.println("The diference of the two is: "+sub);
}
}
如果有人知道我忽略了什么,我将非常感谢您的帮助。当然,只需在
main
中创建该类的实例即可:
MethodVariables instance = new MethodVariables();
instance.addition(num1);
instance.subtraction(num2);
由于
加法
和减法
都是实例方法,因此您总是需要类的实例来调用它们。这与原始问题无关,但值得指出:
public int add = (num1 + num2);
这不会像你期望的那样起作用。如果你想要一个加两个数的函数,只需要做一个加两个数的函数
public int add(int num1, int num2) {
return num1 + num2;
}
public int subtract(int num1, int num2) {
return num1 - num2;
}
将加法()和减法()方法也设为静态。在Java中,不能从静态上下文访问实例数据。备选方案:在main()中创建MethodVariables的实例,并使用该实例获取加法()和减法()成员。