我是Java的初学者。我正在学习最终变量,并尝试了这段代码。
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);
}
}
局部变量(局部到方法或块)仅在定义它的方法(或块)中可见。不可能向该变量添加任何修改器。
从文件中:
没有将变量指定为局部变量的特殊关键字;这个决定完全来自于变量被声明的位置——在一个方法的开始括号和结束括号之间。因此,局部变量只对声明它们的方法可见;他们不能从班上其他人那里接触到。
我在工作时遇到了这种特殊的行为,但我不确定这是什么问题。根据我,“静态”关键字有一些特性 1.属于类而不是对象。 < b>2。静态方法可以访问类的静态实例变量。 但是,有人可以解释一下特定的行为吗: 在编写这一行时,我在Eclipse中打印语句“this.x”时遇到complile时间错误,因为“不能在静态conetext”。 有人能解释一下我的理解中缺少了什么吗??
问题内容: 我有一个带有静态变量的Java类 如何使用反射访问对象? (我有字符串。我需要访问该对象。) 问题答案: 访问静态字段的方式与普通字段完全相同,只是不需要将任何参数传递给方法(可以传递null)。 试试这个:
如果静态成员在Java中没有继承,那么为什么访问修饰符(私有的,受保护的……)适用于它们? 也许,我不是100%清楚术语“继承”:当他们说“静态不继承”时,他们是指“不可见”还是“不能重新定义/重新实现”,或者两者兼而有之? 如果说访问修饰符在谈到静态类成员时只意味着可见性,而在谈到常规类成员时意味着可见性和重新实现的可能性,这是否正确? PS:现在我认为“Java中的静态变量不是继承的,它们只存
问题内容: 我在Java中有一个“私有静态”嵌套类。访问修饰符对此类中的字段和方法的意义是什么?我已经尝试了公共和私有方式,但对我的申请没有影响。 问题答案: 两种嵌套类:1.静态(嵌套类)和2.非静态(也称为内部类) 现在,外部类可以访问内部类的所有成员,但是当您想要限制某些外部类访问它时,实际上您可以对类(嵌套类)的成员使用访问说明符。 有趣的读物:Source1,Source2
问题内容: 将变量声明为的区别是什么 要么 如果我只希望变量是局部的,并且是常量(以后不能更改)? 谢谢 问题答案: 仅仅具有预期的效果。 声明static使其成为一个类变量,使其可以使用类名进行访问
在Java8中,Java设计者提出了一个有效的final变量的概念,即一个如果被“final”追加就不会给编译器带来错误的变量。我的问题是,这个新提出的“有效最终”概念比经典的“最终”提供了什么?作为一名Java开发人员,我实际上得到了什么好处?