我可以在java的静态方法中使用非静态变量吗?
“用java编写一个程序,声明一个类,其中包含一个整数数据成员和两个成员函数in()和out(),用于在数据成员中输入和输出数据。” 我目前的代码如下我可以在java的静态方法中使用非静态变量吗?,java,Java,“用java编写一个程序,声明一个类,其中包含一个整数数据成员和两个成员函数in()和out(),用于在数据成员中输入和输出数据。” 我目前的代码如下 import java.util.Scanner; public class Operator { static int a; public static void input() { Scanner in=new Scanner(System.in); System.out.printl
import java.util.Scanner;
public class Operator
{
static int a;
public static void input() {
Scanner in=new Scanner(System.in);
System.out.println("Enter the number:");
a=in.Nextint(); //Here is problem
}
public static void output() {
System.out.println("Number is:" + a);
}
public static void main(String[] args)
{
input();
output();
}
}
您似乎混淆了w.r.t实例变量和局部变量 您始终可以在静态方法中声明“局部变量”。 例如,main()是一个静态函数,我们总是在其中声明变量 因此,在input()函数中创建类型为Scanner的变量“in”非常好 但是,您“无法”从静态方法访问实例变量和实例方法 这篇关于堆栈溢出的文章给出了一个完整的答案: 就您的代码而言,代码中有一个小错误。 读取整数的函数调用是“nextInt”,而不是“nextInt”。Java通常使用camel case来定义其所有方法。因此,请注意方法的使用 修改后的代码应为:
class Operator
{
static int a;
public static void input() {
Scanner in=new Scanner(System.in);
System.out.println("Enter the number:");
a=in.nextInt(); //this is nextInt and NOT Nextint
}
public static void output() {
System.out.println("Number is:" + a);
}
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
input();
output();
}
}
不。做一个实例或使它静止。你的“问题”的主体与标题无关。你在问什么?请写下上面的代码我会thankfull@RanaHamzaKhursheed我们不是来给你做作业的。让我们看看你做了什么,我们可能会帮助你!没有,你做了什么?你在坚持什么?我们不是来给你做作业的。