Tinking in java读书笔记---关于继承和设置jdk的一个小小错误

本文介绍了一个简单的Java程序,该程序展示了如何通过继承创建子类,并在不同类中实现单元测试。具体包括从基类Cleanser派生子类Detergent的方法,以及如何在MyEclipse中区分调用不同类的main方法进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码比较简单,就是从基类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);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值