【发布时间】:2014-11-11 16:29:57
【问题描述】:
运行此代码时出现以下错误: 错误:无法对非静态字段 c 进行静态引用 错误:无法对非静态字段 d 进行静态引用 代码总共发生了 11 次:
import java.util.Scanner;
class problemStatement
{
int c = 0, d = 0;
public static void main(String [] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Please enters two integers - 0 0 to end program");
do
{
c = in.nextInt();
d = in.nextInt();
System.out.print("User input: " + c + " " + d + " " + displayValues);
if (isFinished(c,d))
{
System.out.println("End of Program.");
}
else
{
displayValues (c,d);
}
}while(!isFinished(c,d));
}
public static int min ( int a, int b)
{
if ( a >=b)
{
return b;
}
else
{
return a;
}
}
public static int max ( int a, int b)
{
if ( a >=b)
{
return a;
}
else
{
return b;
}
}
public static boolean isFinished ( int a, int b )
{
if (a==0&&b==0)
{
return true;
}
else
{
return false;
}
}
public static void displayValues ( int a, int b )
{
int e = min(a,b);
int f = max(a,b);
System.out.print("Max value: " + e + " Min value: " + f);
}
}
我同意某些代码是多余的,但是,我是新手,这是为了让我可以了解更多有关 Java 的信息。 任何帮助表示赞赏。
【问题讨论】:
-
您是否尝试将错误文本放入搜索引擎并阅读结果?
-
c和d是什么? -
@SotiriosDelimanolis 是的,我做到了,但我找不到与我的具体问题相关的任何内容,它们都与使用非静态实际引用静态有关,但我所有的方法都是静态的
-
@Mr_Wizerman69 你所有的方法可能都是静态的,但你调用的变量不是。
-
这是因为
c和d只能用于实例,不能用于类。使它们成为静态的,它将起作用。或者执行s = new problemStatement()并访问s.c。
标签: java methods static non-static