国5奥驰最新款:java初学者的一些疑问,谁能给简单总结下?

来源:百度文库 编辑:高校问答 时间:2024/05/05 06:44:06
就是一般调用方法或者变量要用 对象.方法或者变量。但有时候在某些地方不需要用对象.调用,直接写方法名就可以调用
那。比如这个
import java.awt.*;

public class Test2 extends Frame{

public Test2()
{
show(); //为什么不用t2.show();
}

public static void main(String[] args)
{
Test2 t2 = new Test2();
t2.show();
}
}

还有无其他类似的,

谢谢

你给出的程序中
show()是Frame中继承来的方法
所以Test2这个类本身是包含show()方法(成员方法)

java语言里主要分静态方法和非静态(成员)方法两种
用static 关键字区分,有即静态

类中的成员方法,构造器方法可以调用其它方法(成员,静态皆可),即在Test2()方法中直接调用show()

而静态方法则有明显不同!如以上程序中的main()方法,它只能调用静态变量或者静态方法,不能直接调用成员方法.
解决办法就是如以上程序,先声明一个类实例,再调用它的成员方法.

注意如果是类的静态方法,可以直接用
"类名.静态方法名名"来调用.

一个很显然的问题就是,在类的内部调用show(),相当于this.show();
而在外部,除非静态方法可以通过"类名.静态方法名名"来调用,其他则不行.

我们可以这样理解:如果有两个类都实现了show方法,那么你在main里一个简单的show();调用的是谁?

你应该再看一下 为什么要面向对象编程

一个是函数,一个是对象啊
第一个是调用show();这个函数
第二个是对象的一个方法
两个的概念是不一样的.