按照书上的例子敲的码,运行报错了,eclipse中s1无法解析为变量,问题出在哪了?
s1是在构造函数内部的局部(私有)静态变量,在别的方法里面无法访问,把定义放在构造函数外面即可。
你应该是写错位置或者书上原本就是错误的例子,想给你说明局部变量的定义和作用域,局部变量(局部属性)就是定义在方法里面,作用范围就是从定义开始,所在的方法体结束,也就是说出了你上面的构造函数First(){},这个变量是s1就无效了,所以你可以将它变成全局变量(全局属性),将其写在构造方法public First(){}上面或者下面都可以
比如
public class First{
static String s1="你好";
public First(){}
..........
}
{}表示作用域,注意区分局部变量和全局变量
说的简单一点吧,变量只作用于离它最近的{}中,如图要想在main方法中得到S1的值,需要调用定义S1的这个方法即可。
static 只能修饰 成员变量 或者成员方法。不能修饰局部变量;
在构造方法里的s1是不能用static 关键字修饰的!
你把s1移到类下就可以用了