Java中静态变量和全局变量之间的区别
我是Java编程的新手。 谁能说出Java中全局变量和局部变量之间的区别?
您的问题有点困惑,因为您在标题中引用了static / global,在您的问题中引用了global / local。
static
变量绑定到一个类 , 每个类将有一个实例 。
类可以有成员变量, 每个类的实例都有一个实例 。
请注意,如果您有多个类加载器,这将进一步复杂化。 在这种情况下,您可以加载多个类定义,因此可能有多个静态变量。
Java编程语言中没有全局变量的概念。 相反,有类和成员属性。 类属性用static关键字标记,这意味着可以在没有instanciation的情况下访问它们,而成员属性则绑定到类的实例。
小例子:
public class Person{ public static final int TOTAL_PERSONS; private String firstname; private String lastname; public void setFirstname(String firstname){ ... } ... }
使用此类,我可以使用Person.TOTAL_PERSONS,但不能使用Person.firstname。 要获取/设置名字(不提及您可能很快就会发现的getter / setter),首先需要创建该类的实例:
Person p = new Person(); p.setFirstname("foo");
最后,请注意,可以创建其他语言称为全局变量的内容。 例如,您可以使用Singleton模式,但无论如何,如果没有正当理由,不应使用全局变量: 请查看此页面
除了其他(好的)答案:
public class Person{ public static final int TOTAL_PERSONS = 100; public static int numberOfLegs = 2; private String firstname; private String lastname; public void setFirstname(String firstname){ ... } ... }
编写以下代码:
Person foo = new Person(); foo.setFirstname("foo"); Person bar = new Person(); bar.setFirstname("bar"); // At this point foo and bar have different firstname, and both have 2 legs Person.numberOfLegs = 4; // At this point foo and bar have different firstname, and they both got a pair of 2 extra (bionic) legs // Person.TOTAL_PERSONS is a 'constant' and has an unmodifiable value of 100
请注意,这是示例代码,不应被视为良好实践,也不应被视为有意义。 ;)
全局变量和静态变量非常相似。 唯一的区别是静态变量可以是公共的或私有的。 公共静态变量是java中的全局变量。
局部变量特定于方法或类。它们的范围仅限于指定的方法或类。
有两种类型的方法。 它们是class methods
和object methods
。 Class methods
用关键字static
标识。 任何没有关键字static
的object method
都称为object method
。 可以应用于方法或变量 。
- 如何在使用json的android中使用post方法
- 如何反序列化可能是字符串,对象或列表的json / gson
- Android:将calcOpticalFlowPyrLK与MatOfPoint2f一起使用
- 使用lib添加自定义字体android
- Android:通过RTP(G.711 PCMU)将.wav发送到SIP-Phone非常嘈杂,基于SipDroid / MjSIP的噼啪声
- Android ClassNotFoundException:没有在路径上找到类
- 如何通过Filter和FORWARD调度使用jetty continuation?
- Android webview.postUrl(url,Encodingutils.getBytes(postData,“BASE64”))从postdata字符串中删除“+”
- 将onClickListener添加到listview项目