Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有静态访问修饰符的最终变量_Java - Fatal编程技术网

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

我是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);
     }   
}
局部变量(方法或块的局部变量)仅在定义它的方法(或块)中可见。无法向该变量添加任何修改器

发件人:

没有指定变量为局部变量的特殊关键字;这个决定完全来自于变量被声明的位置——在一个方法的开始括号和结束括号之间。因此,局部变量只对声明它们的方法可见;他们不能从班上的其他人那里得到

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关键字)。基本上是在类的主体和任何方法的主体之外定义的任何变量