Thinking in Java - Fourth Edition 章节练习个人解答——第7章

  注:本练习题答案系个人阅读后所作解答,非原书所配答案。(由于水平有限,文中出现错误还望谅解与指正)

 

文中所有源代码皆在Eclipse-jee-indigo-3.7,Java SE 6平台下测试运行。


练习1:

package lib.seventh;

class Bath {
	public Bath() {
		System.out.print("Bath()");
	}
}
public class Exercise_1 {
	private Bath bath;
	public String toString() {
	if(bath == null)
		bath = new Bath();
	return bath.toString();
	}
	public static void main(String[] args) {
		Exercise_1 e = new Exercise_1();
		System.out.print(e);
	}
} /* Output:
Bath()lib.seventh.Bath@a90653
*///:~


练习2:

package lib.seventh;

import static net.util.Print.*;

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();
		print(x);
	}
}

class Detergent extends Cleanser {
	public void scrub() {
		append(" Detergent.scrub()");
		super.scrub();
	}
	public void foam() { append(" foam()"); }
	public static void main(String[] args) {
		Detergent x = new Detergent();
		x.dilute();
		x.apply();
		x.scrub();
		x.foam();
		print(x);
		print("Testing base class:");
		Cleanser.main(args);
	}
}

public class Exercise_2 extends Detergent {
	public void surub() {
		append(" Exercise_2.surub()");
		super.scrub();
	}
	public void aterilize() { append(" aterilize()"); }
	public static void main(String[] args) {
		Exercise_2 x = new Exercise_2();
		x.dilute();
		x.apply();
		x.foam();
		x.scrub();
		x.aterilize();
		print(x);
		print("Testing base class:");
		Detergent.main(args);
	}
} /* Output:
Cleanser dilute() apply() foam() Detergent.scrub() scrub() aterilize()
Testing base class:
Cleanser dilute() apply() Detergent.scrub() scrub() foam()
Testing base class:
Cleanser dilute() apply() scrub()
*///:~


练习3:

package lib.seventh;

import static net.util.Print.*;

class Art {
	Art() { print("Art constructor"); }
}

class Drawing extends Art {
	Drawing() { print("Drawing constructor"); }
}
	
public class Cartoon extends Drawing {
	public static void main(String[] args) {
		new Cartoon();
	}
} /* Output:
Art constructor
Drawing constructor
*///:~


练习4:

package lib.seventh;

import static net.util.Print.*;

class Discipline {
	public int credit;
	Discipline() { 
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值