import java.util.*;
public class HelloWorld{
public static void main(String []args){
static String[] str={"one","two"};
Date date =new Date();
Calendar cal = Calendar.getInstance();
String year = "2018";
String month ="4";
int day =10;
cal.set(Integer.parseInt(year),Integer.parseInt(month),day);
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
// etc.
}
}
错误消息:
错误:表达式的开头非法
静态字符串[]str={“一”,“二”};
有几种变量:
局部变量不能是静态的
,只有字段可以是静态的
。静态字段不属于任何实例,它们属于类。
在这种情况下,可以将String[]str
设置为类成员:
static String[] str={"one","two"};
public static void main(String []args){
// use str
}
这是无效的语法。您不会将静态
修饰符应用于局部变量。删除静态
。
如果str
是一个类变量,那么在方法之外声明它:
public class HelloWorld{
static String[] str={"one","two"};
静态是类型(接口、类、枚举等)成员的概念。它允许您仅使用类名引用变量,在本例中(HelloWorld.str
)。当变量属于局部作用域时(如在方法体中),不能将其声明为静态,因为它不是类的成员。
输出为"A的静态方法"。因此静态方法不会被重写,否则输出将是“静态方法B”。JVM如何在运行时决定调用类A而不是B的静态方法。
编译器在第3行给出了一个错误 此实例方法无法重写Abc中的静态方法 为什么静态方法不能被实例方法覆盖?
我从一个有静态方法的类(B)扩展了一个类(a),然后在另一个类(C)中,我创建了一个类(a)的实例,并且我能够访问类B的静态方法。为什么会这样? A类: B类: C类:
我试图理解为什么我们不能覆盖静态和最终方法。我不明白背后的目的。
我在试着写作 但是我收到编译器错误 CS1003语法错误,':'预期 是期待行为还是bug?