在java程序中 为什么有的方法需要创建对象通过 . 来调用的 有点却可以直接用 如下

import acm.graphics.*;
import acm.program.*;

public class HellProgram extends GraphicsProgram{
public void run() {
GLabel label=new GLabel("Hello world",100,75);
label.setColor(Color.RED);
add(label);
}
}
这是一段视频里的代码 不是JAVA标准库 主要想要知道 label.setColor() 为什么这个方法需要用对象调用 怎么不直接写 setColor() 为什么add()方法前面什么都没有 add()是新创建的HelloWorld这个类直接调用的吗 是不是可以写成HelloWorld.add() 为什么不用HelloWorld这个类创建一个对象 然后调用add()。

现在都这么速成么,代码结构都不学,就直接上程序,如果这么多不明白,怎么不翻书
起始的书很重要,选择难度略高的不利于你的学习,基础的东西看看系统讲的书,代码自然就能看懂了
label.setColor()的label是GLabel类的实例,那么setColor()自然是Glabel的方法,你不指明哪个实例,你怎么把颜色set进去
add()方法前面什么都没有,那是因为它是HelloProgram自己的方法,来源亦可以是继承来的,在run()方法中调用自己类里的方法不需要对象引用,HelloWorld.add() 这是静态方法的调用规则
不用你说的什么HelloWorld对象时因为GraphicsProgram类本身是个容器,你必然要add到本身来,新建一个add结果是两个窗口
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-20
GLabel label=new GLabel("Hello world",100,75);调用GLabel类的有参构造函数,新建一个lable对象,以便于使用GLabel类的属性和方法!add(label);是调用父类的add方法,前面省略了super.即相当于super.add(label);本回答被提问者和网友采纳
第2个回答  2012-08-20
普通方法是需要创建对象调用 的、、、、而静态方法是可以直接 类名.方法名 调用
第3个回答  2012-08-20
继承了父类,可以直接用父类的方法add(label)