Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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 t1是静态的还是非静态的?_Java - Fatal编程技术网

Java t1是静态的还是非静态的?

Java t1是静态的还是非静态的?,java,Java,t1是静态的还是非静态的 class Test { void display() { System.out.println("hello"); } public static void main(String a[]) { Test t1 = new Test(); //object created t1.display(); } } t1是局部变量,局部变量不是静态的,因为它们位于方法的范围内,而静态变量/

t1是静态的还是非静态的

class Test { 
    void display() {
        System.out.println("hello");
    }

    public static void main(String a[]) {
        Test t1 = new Test(); //object created
        t1.display();
    } 
}
t1是局部变量,局部变量不是静态的,因为它们位于方法的范围内,而静态变量/字段独立于方法执行而存在


静态变量/字段必须在方法外部声明。

它本身不是静态的,尽管它仅存在于静态上下文中。静态描述符仅适用于类级实体。考虑这个类的内置版本JavaLang.Maple类的简化版本:

class EasyMath {
    public static final double PI = 3.17;

    public static int quadruple(int i) {
        int num = i * 4;
        return num;
    }
}
您可以使用EasyMath.PI直接引用PI的值。这是一个类变量。它直接属于EasyMath类,而不是该类的实例

同样,您也可以从类中引用四倍体方法:EasyMath.fourple6。这是因为该方法是静态的,它直接属于类

请注意,四联方法定义了一个名为num的局部变量。但是,您无法使用EasyMath.num引用该变量。它不属于这个类


它的作用域局限于静态四重方法,因此它仅在该方法中可用,而在其他任何地方都不可用。另一个静态方法将无法看到或引用它。同样,如果有任何实例方法,它们也无法看到它。局部变量永远不可能是静态的。

你怎么看?什么东西是静态的理解类membersstatic关键字。疑问:如果它是非静态的,那么如何在静态主函数中使用它。?t1是一个局部变量,只能在这里声明的方法中访问:main。静态/非静态变量的概念仅适用于字段。它仅存在于方法本地上下文中。@EJP上下文仍然是静态的,只是变量的作用域是本地的。例如,如果试图从该方法中访问实例变量,Java会抱怨从静态上下文访问非静态变量。在main方法中,上下文是静态的。