当前位置: 首页 > 知识库问答 >
问题:

带有静态访问修饰符的最终变量[重复]

夏侯元忠
2023-03-14

我是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.

我做错了什么?如何将所有对象的最终变量设置为静态?

共有1个答案

段劲
2023-03-14

如果变量是某个方法的局部变量,则无法指定任何访问修饰符。

变量必须在类的主体中。

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开发人员,我实际上得到了什么好处?