"在java中编写一个程序,它声明一个具有一个整数数据成员的类和两个用于()和out()的成员函数来输入和输出数据成员中的数据。"
我目前的代码如下。
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();
}
}
答案 0 :(得分:1)
你似乎对w.r.t实例变量和局部变量感到困惑。
你总是可以声明一个"局部变量"在静态方法中。 例如main()是一个静态函数,我们总是在其中声明变量。
所以你创建了一个变量" in"在input()函数中的扫描仪类型非常好。
然而,你"不能"从静态方法访问实例变量和实例方法。
这篇关于堆栈溢出的帖子提供了完整而完整的答案:Can non-static methods modify static variables
就您的代码而言,代码中存在轻微错误。 读取整数的函数调用是" 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();
}
}