类变量和全局变量之间有什么区别?

时间:2017-11-10 10:12:06

标签: java variables global-variables class-variables

还有什么区别吗?他们只是不同的条款吗?我需要能够解释学校的差异以及我在下面写的内容似乎是互联网描述的全局变量。

这是我的代码:

public class variableTypes

{
    public static String a = "hello!"; //<--- global variable (i think)

public static void main(String[]args)
{
  System.out.println(variableTypes.a);
}

2 个答案:

答案 0 :(得分:0)

class A {
    static String text = "Manoj";

    static void print() {
        String stack = "Stack";
        System.out.println(stack);// local variable
        System.out.println(A.text);// global
    }

    public static void main(String... args) {
        print();
        System.out.println(stack);// will give error because scope is local to print method
        System.out.println(A.text);// global so will work anywhere in class
    }
}

答案 1 :(得分:0)

静态的东西可以被同一名称空间中的任何类或方法访问。静态变量将在程序的生命周期内持续存在。

类的本地内容只存在于该类(对象)实例的生命周期中,并且只能通过实例访问。

函数/方法本地的东西只存在于该方法的执行中。

区别在于:

  • i = Class.variable
  • i = myClass.variable
  • i = myClass.Function()如果函数像int apple = 4; return apple那样简单,否则,实际上没有办法访问方法/函数的局部变量。

注意:我已经忽略了访问修饰符,但我们只是说这是真的,因为一切都是公开的。否则,我说的每件事都只能通过一些额外的工作来实现。 (也可能是更好的练习。)

Disclamer:我之前使用过Java,但这不是我经常使用的东西。但这些概念非常标准。

Disclamer:我也是学生,我错了,但我认为我是对的。

我找到了这个网站,似乎有点支持我所说的: https://www.guru99.com/java-static-variable-methods.html

网站脱机时的相关部分:

  

Java静态变量它是属于类和的变量   不对象(实例)静态变量只初始化一次,   在执行开始时。这些变量将被初始化   首先,在任何实例变量初始化之前单个   复制由类的所有实例共享静态变量即可   可以通过类名直接访问,不需要任何对象   语法:。

祝你好运!