为什么在java中我必须将类名添加到静态变量之前才能从类外部访问它。想了解编译器

因此,在 Java 中,您编写了一个公共静态变量,并且必须通过说 class.var 在类外访问它在主文件中。

希望了解编译器如何在使用相同 class.publicstatic 方法的 Java 和面向对象语言上工作。

lyypf12 回答:为什么在java中我必须将类名添加到静态变量之前才能从类外部访问它。想了解编译器

您可以在不同的类中使用同名的静态变量。您可能会在未指定类名的情况下在此请求中遇到错误。举个例子;

package com.axample;
import ...

public static class FooClass{
    public static int staticVariable;
    .
    .
    .  
}
package com.axample;
import ...

public static class BarClass{
    public static int staticVariable;
    .
    .
    .  ​
}


import static com.example.FooClass.*;
import static com.example.BarClass.*;

public class Main{
    public static void Main(String[] args){
        int baz = 0;
        //staticVariable = baz ;   //Error
        BarClass.staticVariable = baz;  //Must be
    } ​
}


,

类的静态成员不在类之外的范围内,甚至不在同一个包中的其他类中。

然而,您可以通过添加静态导入将它们添加到当前类的范围,例如

import static com.example.Foo.*;
import static com.example.Bar.doStuff;

这会将类 Foo 的所有静态成员添加到名称范围。

它还将在 doStuff 类中添加方法 Bar 的所有静态重载。

本文链接:https://www.f2er.com/8394.html

大家都在问