Evo*_*lor 3 java eclipse static
对于专家来说这是一个非常简单的问题,但对于像我这样的初学者来说,这只是令人困惑.我以为我理解静态,但显然我没有.以下是整个课程,它说我需要进行静态测试.但我不想.我该怎么做才能解决这个问题,为什么它首先发生?谢谢!
public class SubstringTest
{
private String test;
public static void main(String[] args)
{
test = "Penguin";
System.out.println(test);
System.out.println(test.substring(3));
}
}
Run Code Online (Sandbox Code Playgroud)
main是静态的.test不是.
如果你不想做test静态,你必须创建一个实例的SubstringTest第一.
SubstringTest st = new SubstringTest(); // create an instance
st.test = "test"; // this works
System.out.println(st.test); // also works
Run Code Online (Sandbox Code Playgroud)
如果test是静态的,你可以这样做
SubstringTest.test = "test";
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在编写的代码在类中SubstringTest 并且 test是静态的:
test = "test";
Run Code Online (Sandbox Code Playgroud)
静态方法无法访问非静态/实例变量,因为静态方法永远不会与任何实例关联.静态方法不能直接调用非静态变量.但静态方法可以通过声明实例并使用它们来访问非静态变量.
public class SubstringTest
{
private String test; // make it private static String test;
public static void main(String[] args)
{ // SubstringTest t = new SubstringTest(); Or change here.
// t.test ="Penguin";
test = "Penguin";
System.out.println(test);
System.out.println(test.substring(3));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |