2017-04-06 122 views
-2

“用java编写一个程序,用()和out()中的一个整数数据成员和两个成员函数声明一个类,以在数据成员中输入和输出数据。我可以在java的静态方法中使用非静态变量吗?

我现在的代码如下。

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

都能跟得上。创建一个实例或将其设为静态。 – matt

+2

你的“问题”的主体与标题无关。你在问什么? –

+0

plz只是写上面的语句的代码我会很感谢 –

回答

0

您似乎对w.r.t实例变量和局部变量感到困惑。

您可以随时在静态方法内声明一个“局部变量”。例如main()是一个静态函数,我们总是在其中声明变量。

因此,您在input()函数内创建类型为Scanner的变量“in”是完全正确的。

但是,您“不能”从静态方法访问实例变量和实例方法。

这个职位上的堆栈溢出给出了全面和完整的答案: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(); 

    } 
} 
相关问题