【发布时间】:2014-06-18 14:58:59
【问题描述】:
我惊讶地发现这令人困惑。我一定是错过了什么。
所以我有这个简单的语法
public class OMG{
public static void main(String args[]){
int hi=2;
letsDoIt();
System.out.println(hi);
}
public static void letsDoIt(){
hi+=1;
}
}
显然这会导致错误,因为 hi 是一个局部变量。
根据我从 python 的经验来看,我添加了this
public class OMG{
public static void main(String args[]){
int hi=2;
letsDoIt();
System.out.println(hi);
}
public static void letsDoIt(){
this.hi+=1;
}
}
当无法从静态方法访问非静态变量时,这会增加额外的错误。
我加了 static 到嗨
public class OMG{
public static void main(String args[]){
static int hi=2;
letsDoIt();
System.out.println(hi);
}
public static void letsDoIt(){
this.hi+=1;
}
}
编译器责骂我的表达式非法。我用private(一些SO回答,推荐)替换静态但同样的错误。
我的错误在哪里?有什么方法可以解决这个问题,而不需要进行全局类?
【问题讨论】:
-
您必须将
static int hi=2;放在main方法体之外。 -
您应该从阅读 java 教程开始,而不是基于其他语言的语法。
-
@SotiriosDelimanolis 不幸的是,我找不到涵盖此内容的 Java 教程。我身边有一本 Java 书,但没有关于“这个”的内容,所以我在黑暗中做了一个尝试。
-
您找不到涵盖关键字
this和static的书籍或教程?