您的位置:寻梦网首页编程乐园Java天地Core JavaJAVA程序员必读
JAVA程序员必读:基础篇(5)---类和继承
    
编译:ZSC/太平洋网络学院

5.1.7 理解实例和类成员

为了指定方法为一个类方法,你可以在方法声明的地方使用static关键字。现在我们改变一下AnIntegerNamedX类,比如它的成员变量x为实例变量,以及它的两个方法为类方法:

class AnIntegerNamedX {

int x;

static public int x() {

return x;

}

static public void setX(int newX) {

x = newX;

}

}

当我们编译这个修改过的AnInterNamedX的时候,编译器就给出以下的错误:

AnIntegerNamedX.java:4: Can't make a static reference to

nonstatic variable x in class AnIntegerNamedX.

return x;

^

出现这个错误的原因是类方法不能访问实例变量,除非方法首先创建AnIntergerNamedX的实例并且通过它来访问变量。

下面再修改AnIntegerNamedX,使x变量为一个类变量:

class AnIntegerNamedX {

static int x;

static public int x() {

return x;

}

static public void setX(int newX) {

x = newX;

}

}

现在类就可以编译了,它是在创建AnIntegerNamedX两个实例之前设置了它们的x数值并打印出来:

myX.x = 2

anotherX.x = 2

实例成员和类成员之间的另外不同点是类成员可以在类本身中访问。你不必实例化一个类来访问类成员。下面再对上面的代码进行修改:

. . .

AnIntegerNamedX.setX(1);

System.out.println("AnIntegerNamedX.x = " + AnIntegerNamedX.x());

. . .

这里注意你不再需要创建myX和anotherX。你可以直接从AnIntegerNamedX中设置x并检索x。而你不能这样来处理实例成员,你可以从对象中只调用实例方法。你可以从类的实例或者从类本身访问类变量和方法。

[上一页] [下一页]