2015-01-09 61 views
-2

我只是好奇为什么类变量(即变量与static关键字)其调用类变量而不是包变量。我的意思是如果我在一个类中声明一个静态变量,只要它不是私有的,我可以从同一个包中的另一个类访问这个变量。在java中命名变量的做法。为什么类变量不包变量

此外,实例变量是在一个类中声明的,并且该类中的方法可以访问实例变量,为什么不把它们命名为类变量......我只是不明白它。

回答

2

该类基本上是创建实例(对象)的框架或蓝图。静态变量和方法在框架内部定义,并在类由ClassLoader加载时创建,因此不需要为其创建实例。这就是为什么他们是类变量。它们不是包变量,因为它们专门属于该类。即你可以通过调用MyClass.myVariable来访问它们。

实例变量只有在类的实例(即对象是通过调用new()创建并且它们特定于该对象而不是特定于该类时才存在。有一个实例变量的计数与创建该类的对象数量一样多,而总是只有一个静态类变量的计数。这就是为什么他们被称为实例变量,因为它们是特定于实例而不是类。

0

它被称为类变量,因为它在一个类中。命名约定中的可见性并不重要。 而非静态变量是一个实例变量,因为它可能在一个类的实例中不同。方法在该类的所有实例中总是相同的。

0

因为包由一组类共同工作,而类是组成实现中的对象的抽象。你不能让变量纯粹作为包变量存在,因为它不会给出哪个类“拥有”变量的上下文。另外,这只是不好的面向对象编程。