Java 带有静态访问修饰符的最终变量
我是Java的初学者。我正在学习最终变量,并尝试了这段代码Java 带有静态访问修饰符的最终变量,java,Java,我是Java的初学者。我正在学习最终变量,并尝试了这段代码 package taopablot; class Person { String name; public void myPerson(String name) { this.name = name; System.out.println(this.name); } } public class Final { public s
package taopablot;
class Person
{
String name;
public void myPerson(String name)
{
this.name = name;
System.out.println(this.name);
}
}
public class Final {
public static void main(String[] args)
{
static final String name = "Pablo";
Person person = new Person();
Person person2 = new Person();
Person person3 = new Person();
person.myPerson(name);
person2.myPerson(name);
person3.myPerson(name);
}
}
然而,Eclipse给了我一个错误
Illegal modifier for parameter name; only final is permitted.
我做错了什么?如何将所有对象的最终变量设置为静态?如果该变量是某个方法的局部变量,则无法分配任何访问修饰符 变量必须在类的主体中
public class Final {
// Moved out of main body in the Final body
static final String name = "Pablo";
public static void main(String[] args) {
// Removed from here
// static final String name = "Pablo";
Person person = new Person();
Person person2 = new Person();
Person person3 = new Person();
person.myPerson(name);
person2.myPerson(name);
person3.myPerson(name);
}
}
局部变量(方法或块的局部变量)仅在定义它的方法(或块)中可见。无法向该变量添加任何修改器
发件人:
没有指定变量为局部变量的特殊关键字;这个决定完全来自于变量被声明的位置——在一个方法的开始括号和结束括号之间。因此,局部变量只对声明它们的方法可见;他们不能从班上的其他人那里得到
public class Final {
// Moved out of main body in the Final body
static final String name = "Pablo";
public static void main(String[] args) {
// Removed from here
// static final String name = "Pablo";
Person person = new Person();
Person person2 = new Person();
Person person3 = new Person();
person.myPerson(name);
person2.myPerson(name);
person3.myPerson(name);
}
}
那么变量名是main方法的局部变量吗?如果一个变量是main方法的局部变量(如person、person2、person3),则不能向该变量添加修饰符。对于main方法以外的其他方法的局部变量,我可以向这些方法添加修饰符吗?完全相同。如果在方法体中定义了变量,则只有该方法才能看到该变量。我在answerInstance变量或class变量中添加了oracle文档的相关部分(如果添加static关键字)。基本上是在类的主体和任何方法的主体之外定义的任何变量