Java实例和静态方法中的实例和静态变量用法的澄清?

时间:2014-03-10 00:07:10

标签: java static-methods instance-variables

我的书中的问题是:在定义中对实例变量和静态变量访问施加了哪些限制:1。)实例方法? 2.)静态方法?

我对这个概念的回答是否正确?

- 实例方法无法直接访问实例变量,而可以直接访问静态变量,因为在整个类中使用了一个副本。 (每个对象将共享此静态变量以及类中的静态方法。实例变量仅对每个对象可用,并且每个对象都有自己的此实例变量的副本。)静态方法无法访问类的实例成员。但是,静态方法可以访问静态变量的成员。

2 个答案:

答案 0 :(得分:3)

  

实例方法无法直接访问实例变量

错误。

  

虽然可以直接访问静态变量,因为整个类中都使用了一个副本。

正确。

  

(每个对象将共享此静态变量以及类中的静态方法。

正确。

  

实例变量仅对每个对象可用,并且每个对象都有自己的此实例变量副本。)

正确。

  

静态方法无法访问类的实例成员。

正确。

  

然而,静态方法可以访问静态变量的成员。

正确,如果它有成员,则可以访问。

编译器会以100%的可靠性告诉你所有这些。

答案 1 :(得分:1)

这是对的,简单地说:

实例方法可以访问同一个类的实例和静态变量(如果其他访问修饰符允许的话);

静态方法只能访问同一类的静态变量。