我可以在java的静态方法中使用非静态变量吗?

我可以在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

“用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.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我们不是来给你做作业的。让我们看看你做了什么,我们可能会帮助你!没有,你做了什么?你在坚持什么?我们不是来给你做作业的。