![](/img/trans.png)
[英]How can I use non static variable(object ref) in static method without creating object inside that static method in java?is there any way to do it?
[英]Can I use non static variable in static method in 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.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();
}
}
您似乎对实例变量和局部变量感到困惑。
您始终可以在静态方法中声明一个“局部变量”。 例如 main() 是一个静态函数,我们总是在其中声明变量。
所以你在 input() 函数中创建一个 Scanner 类型的变量“in”是完全没问题的。
但是,您“不能”从静态方法访问实例变量和实例方法。
这篇关于堆栈溢出的帖子给出了完整而完整的答案: 非静态方法可以修改静态变量吗?
就您的代码而言,代码中有一个小错误。 读取整数的函数调用是“nextInt”而不是“Nextint”。 Java 通常使用驼峰式大小写来定义它的所有方法。 所以要小心方法的使用。
修改后的代码应该是这样的:
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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.