代码比较简单,就是从基类Cleanser中派生一个子类Detergent,以及一些方法的调用。
这里第一次涉及到main方法作为单元测试使用。(c和c++同一个编译单元中不能有多个主函数)
那么问题就是如何区分调用Cleanser和Detergent这两个类的main方法?
1.命令行调用:
a. 更改目录到源文件的目录下,javac Detergentjava.
b. java Cleanser时,调用的就是测试Cleanser.main方法
java Detergent时,调用的就是Detergent.main方法。
2.myeclipse中区分调用:
Run---》Run Configurations---》Main---》选择修改Main class的名称,然后再Run,就可以达到同效果。
一个错误:
之前以为jdk配置好了,就在执行javac命令时发现,命令提示符窗口弹出错误:认为javac是外部命令,而不识别。
在bin目录下没有找到javac.exe这个文件,晕了好久。
原来以前安装的仅仅是jre,而并不是完整的jdk,(没有src.zip云云,之前就觉得不完整,怪怪的),终于在这里搞明白了。
参照代码:
class Cleanser {
private String s = "Cleanser";
public void append(String a) {
s += a;
}
public void dilute() {
append(" dilute() ");
}
public void apply() {
append(" apply() ");
}
public void scrub() {
append(" scrub() ");
}
public String toString() {
return s;
}
public static void main(String[] args) {
Cleanser x = new Cleanser();
x.dilute();
x.apply();
x.scrub();
System.out.println(x);
}
}
public class Detergent extends Cleanser {
public void srucb() {
append(" Detergent.scrub() ");
super.scrub(); //调用基类的scrub()
}
public void foam() {
append(" foam() ");
}
public static void main(String[] args) {
Detergent x = new Detergent();
x.dilute();
x.srucb();
x.apply();
x.foam();
System.out.println(x);
System.out.println("Testing base class: ");
Cleanser.main(args);
}
}