java编程思想第四版第八章习题
- 第一题
package net.mindview.polymorphism;
//基类-自行车
class Cycle{ } //子类-单轮车
class Unicycle extends Cycle{ } //子类-双轮车
class Bicycle extends Cycle{ } //子类-三轮车
class Tricycle extends Cycle{ } public class CycleCompetition {
public static void ride(Cycle cycle){ } public static void main(String[] args) {
Bicycle b = new Bicycle();
ride(b);
}
} 你 - (略)
- (略)
- 第四题
package net.mindview.polymorphism; import java.util.Random; //形状
class Shape{
public void draw(){}
public void erase(){}
} //圆形
class Cycle1 extends Shape { @Override
public void draw() {
System.out.println("draw cycle");
} @Override
public void erase() {
System.out.println("erase cycle");
} } class Square extends Shape {
@Override
public void draw() {
System.out.println("draw Square");
} @Override
public void erase() {
System.out.println("draw Square");
}
} //矩形
class Triangle extends Shape {
@Override
public void draw() {
System.out.println("draw Triangle");
} @Override
public void erase() {
System.out.println("draw Triangle");
}
} //梯形
class Trapezoid extends Shape {
@Override
public void draw() {
System.out.println("draw Trapezoid");
} @Override
public void erase() {
System.out.println("draw Trapezoid");
}
} class RandomShapeFactory {
Random random = new Random(); //下面画什么形状呢
public Shape next(){
switch(random.nextInt()) {
default:
case : return new Cycle1();
case : return new Square();
case : return new Triangle();
case : return new Trapezoid();
}
}
} public class Shapes {
public static void main(String[] args) {
Shape[] shape = new Shape[];
RandomShapeFactory factory = new RandomShapeFactory();
for(int i=; i<shape.length; i++){
shape[i] = factory.next();
shape[i].draw();
} } } - 第五题
package net.mindview.polymorphism;
//基类-自行车
class Cycle{
public int wheels(){
return ;
}
} //子类-单轮车
class Unicycle extends Cycle{
public int wheels(){
return ;
}
} //子类-双轮车
class Bicycle extends Cycle{
public int wheels(){
return ;
}
} //子类-三轮车
class Tricycle extends Cycle{
public int wheels(){
return ;
}
} public class CycleCompetition {
public static void ride(Cycle cycle){
System.out.println(cycle.wheels());
} public static void main(String[] args) {
Bicycle b = new Bicycle();
ride(b);
}
} - 第六题
package net.mindview.polymorphism.Music3; import net.mindview.polymorphism.Note; class Instrument {
public void play(Note i){
System.out.println("Instrument.play() ");
} public String toString () {
return Instrument.class.getName();
} void adjust(){System.out.println("adjust Instrument");} } class Wind extends Instrument {
@Override
public void play(Note i) {
System.out.println("Wind.play() ");
} String what (){ return "Wind"; } void adjust(){System.out.println("adjust Wind");}
} class Stringed extends Instrument {
@Override
public void play(Note i) {
System.out.println("Stringed.play() ");
} String what (){ return "Stringed"; } void adjust(){System.out.println("adjust Stringed");}
} class Brass extends Instrument {
@Override
public void play(Note i) {
System.out.println("Brass.play() ");
} String what (){ return "Brass"; } void adjust(){System.out.println("adjust Brass");}
} public class Music3 {
//曲调
public static void tune(Instrument i){
i.play(Note.MIDDLE_C);
} public static void tuneAll(Instrument[] i){
for(Instrument ins: i){
tune(ins);
}
} public static void main(String[] args) {
Instrument[] i = {
new Wind(),
new Stringed(),
new Brass()
};
tuneAll(i); Instrument t = new Instrument();
System.out.println(t);
} } - 第七题
package net.mindview.polymorphism.Music3; import net.mindview.polymorphism.Note; class Instrument {
public void play(Note i){
System.out.println("Instrument.play() ");
} public String toString () {
return Instrument.class.getName();
} void adjust(){System.out.println("adjust Instrument");} } class Wind extends Instrument {
@Override
public void play(Note i) {
System.out.println("Wind.play() ");
} String what (){ return "Wind"; } void adjust(){System.out.println("adjust Wind");}
} class Stringed extends Instrument {
@Override
public void play(Note i) {
System.out.println("Stringed.play() ");
} String what (){ return "Stringed"; } void adjust(){System.out.println("adjust Stringed");}
} class Brass extends Instrument {
@Override
public void play(Note i) {
System.out.println("Brass.play() ");
} String what (){ return "Brass"; } void adjust(){System.out.println("adjust Brass");}
} class Other extends Instrument {
@Override
public void play(Note i) {
System.out.println("Other.play() ");
} String what (){ return "Other"; } void adjust(){System.out.println("adjust Other");}
} public class Music3 {
//曲调
public static void tune(Instrument i){
i.play(Note.MIDDLE_C);
} public static void tuneAll(Instrument[] i){
for(Instrument ins: i){
tune(ins);
}
} public static void main(String[] args) {
Instrument[] i = {
new Wind(),
new Stringed(),
new Brass(),
new Other()
};
tuneAll(i); Instrument t = new Instrument();
System.out.println(t);
} } - 第八题
package net.mindview.polymorphism.Music3; import java.util.Random; import net.mindview.polymorphism.Note; class Instrument {
public void play(Note i){
System.out.println("Instrument.play() ");
} public String toString () {
return Instrument.class.getName();
} void adjust(){System.out.println("adjust Instrument");} } class Wind extends Instrument {
@Override
public void play(Note i) {
System.out.println("Wind.play() ");
} String what (){ return "Wind"; } void adjust(){System.out.println("adjust Wind");}
} class Stringed extends Instrument {
@Override
public void play(Note i) {
System.out.println("Stringed.play() ");
} String what (){ return "Stringed"; } void adjust(){System.out.println("adjust Stringed");}
} class Brass extends Instrument {
@Override
public void play(Note i) {
System.out.println("Brass.play() ");
} String what (){ return "Brass"; } void adjust(){System.out.println("adjust Brass");}
} class Other extends Instrument {
@Override
public void play(Note i) {
System.out.println("Other.play() ");
} String what (){ return "Other"; } void adjust(){System.out.println("adjust Other");}
} class RandomInstrumentFactory {
Random rand = new Random();
public Instrument next(){
switch(rand.nextInt()){
default:
case : return new Wind();
case : return new Stringed();
case : return new Brass();
case : return new Other();
}
}
} public class Music3 {
//曲调
public static void tune(Instrument i){
i.play(Note.MIDDLE_C);
} public static void tuneAll(Instrument[] i){
for(Instrument ins: i){
tune(ins);
}
} public static void main(String[] args) {
RandomInstrumentFactory factory = new RandomInstrumentFactory();
Instrument[] instruments = new Instrument[];
for(int i=; i<instruments.length; i++){
instruments[i] = factory.next();
}
tuneAll(instruments); Instrument t = new Instrument();
System.out.println(t);
} } - 第九题
package net.mindview.polymorphism; //啮(nie四声)齿动物
class Rodent{
void say(){System.out.println("hi,我是 Rodent");}
} //老鼠
class Mouse extends Rodent{
void say(){System.out.println("hi,我是 Mouse");}
} //鼹鼠
class Gerbil extends Rodent{
void say(){System.out.println("hi,我是 Gerbil");}
} //大颊鼠
class Hamster extends Rodent{
void say(){System.out.println("hi,我是 Hamster");}
} //啮(nie四声)齿动物大家族
public class RodentHome {
public static void instroduce(Rodent rodent){
rodent.say();
} public static void instroduceAll(Rodent[] rodents){
for(Rodent r: rodents){
instroduce(r);
}
} public static void main(String[] args) {
Rodent[] rodents = {
new Mouse(),
new Gerbil(),
new Hamster()
};
instroduceAll(rodents);
}
} - 第十题
package net.mindview.polymorphism; class Base{
public void method1(){
System.out.println("method1");
method2();
} public void method2(){
System.out.println("Base method2");
}
} class Child extends Base{
@Override
public void method2() {
System.out.println("Child method2");
}
} public class Test10 { public static void up(Base b){
b.method1();
} public static void main(String[] args) {
Child c = new Child();
up(c); }
} - afd
- adf
- 第十三题
package net.mindview.polymorphism;
import static net.mindview.util.Print.*;
//这是一个共享类
class Shared {
private int refCount = ;
private static long counter = ;
private final long id = counter++; public Shared(){
println("Creating "+this);
} public void addRef(){
refCount ++;
} protected void dispose(){
if(--refCount ==){
println("Disposing " + this);
}
} @Override
public String toString() {
return "Shared " + id;
} @Override
protected void finalize() throws Throwable {
if(refCount != ){
println("Error, 引用计数不为0");
}
super.finalize();
}
} //组成类
class Composing{
private Shared shared;
private static long counter = ;
private final long id = counter ++; public Composing(Shared shared){
println("Creating "+ this);
this.shared = shared;
shared.addRef();
} protected void dispose() {
println("dispose " + this);
shared.dispose();
}
@Override
public String toString() {
return "Composing " + id;
} } //引用计数
public class ReferenceCounting { public static void main(String[] args) {
// TODO Auto-generated method stub
Shared shared = new Shared();
Composing[] composing = {
new Composing(shared),
new Composing(shared),
new Composing(shared),
new Composing(shared),
new Composing(shared),
new Composing(shared)
};
for(Composing c:composing){
c.dispose();
}
}
} - fa
- dfa
- 第十六题
package net.mindview.polymorphism; class AlertStatus {
@Override
public String toString() {
return "AlertStatus";
}
} class StartStatus extends AlertStatus {
@Override
public String toString() {
return "StartStatus";
}
} class EndStatus extends AlertStatus {
@Override
public String toString() {
return "EndStatus";
}
} class PauseStatus extends AlertStatus {
@Override
public String toString() {
return "PauseStatus";
}
} class Music4 {
AlertStatus as = new StartStatus(); public void pause(){
as = new PauseStatus();
} public void end(){
as = new EndStatus();
} public void currentStatus(){
System.out.println(as);
}
} public class Starship { public static void main(String[] args) {
Music4 m = new Music4();
m.currentStatus();
m.pause();
m.currentStatus();
m.end();
m.currentStatus();
}
} - 第十七题
package net.mindview.polymorphism;
//基类-自行车
class Cycle{
public int wheels(){
return ;
}
} //子类-单轮车
class Unicycle extends Cycle{
public int wheels(){
return ;
} public void balance(){
System.out.println("Unicycle balance");
}
} //子类-双轮车
class Bicycle extends Cycle{
public int wheels(){
return ;
}
public void balance(){
System.out.println("Bicycle balance");
}
} //子类-三轮车
class Tricycle extends Cycle{
public int wheels(){
return ;
}
} public class CycleCompetition {
public static void ride(Cycle cycle){
System.out.println(cycle.wheels());
} public static void main(String[] args) {
Cycle[] cycle = {
new Cycle(),
new Unicycle(),
new Bicycle(),
new Tricycle()
};
//((Cycle)cycle[0]).balance();//编译不通过
((Unicycle)cycle[]).balance();
((Bicycle)cycle[]).balance();
}
}
java编程思想第四版第八章习题的更多相关文章
- java编程思想第四版第八章总结
1. 多态的含义 面向对象的三大基本特征: 封装,继承,多态. 多态是干什么的? 多态将做什么和怎么做分离开.从另一个角度将接口是实现类分离开. 多态的作用 消除类型之间耦合的关系 使用多态的好处? ...
- java编程思想第四版第九章习题
第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void pr ...
- java编程思想第四版第十章习题
第一题 package net.mindview.innerclasses; public class Outer { class Inner { Inner(){ System.out.printl ...
- java编程思想第四版中net.mindview.util包下载,及源码简单导入使用
在java编程思想第四版中需要使用net.mindview.util包,大家可以直接到http://www.mindviewinc.com/TIJ4/CodeInstructions.html 去下载 ...
- 《Java编程思想第四版》附录 B 对比 C++和 Java
<Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是 ...
- Java编程思想第四版勘误
坊间传说这本书翻译得很烂,我倒觉得还好.虽然看原文更准确,但是如果在具备一定编程思维和基础.能够看出来疑问的情况下,还是看中文更快一些,而且这本书本身也不适合初学者看.当然,错误和不通顺还是有的,而且 ...
- Java编程思想第四版完整中文高清版.pdf
Java编程思想第四版完整中文高清版.pdf 链接: https://pan.baidu.com/s/1vV5BHF3L-bnaG6WGurdJ_A 提取码: vigy 复制这段内容后打开百度网盘手机 ...
- 《Java编程思想第四版完整中文高清版.pdf》-笔记
D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long ...
- 《Java编程思想第四版》附录 C Java 编程规则
附录 C Java 编程规则 本附录包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导: (1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符 ...
随机推荐
- 洛谷P1608 路径计数
题目简介 题目描述 给你一个N点M边的有向图,求第一个点到第n个点的最短路和最短路条数 题目分析 很明显直接Dijkstra求最短路,加一个最短路计数 如下: if(dis[y]>dis[x]+ ...
- PHP array_shift
1.函数的作用:删除数组的头个元素并返回 2.函数的参数: @params array &$array 3.需要注意的例子: <?php /** * http://php.net/ma ...
- 微信小程序尺寸单位rpx以及样式相关介绍
rpx单位是微信小程序中css的尺寸单位,rpx可以根据屏幕宽度进行自适应.规定屏幕宽为750rpx.如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375p ...
- [JZOJ100043] 【NOIP2017提高A组模拟7.13】第K小数
Description 有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少. Input 输入文件包含三行. 第一行为 ...
- CentOS6.5下搭建文件共享服务(Samba)
Samba服务: 本内容为samba服务学习者提供参考 案例描述: 某公司的管理员需要搭建SAMBA服务器,IP地址及允许的访问网段自定义.SAMBA服务器的安全级别为user级,所在工作组为WORK ...
- 原来热加载如此简单,手动写一个 Java 热加载吧
1. 什么是热加载 热加载是指可以在不重启服务的情况下让更改的代码生效,热加载可以显著的提升开发以及调试的效率,它是基于 Java 的类加载器实现的,但是由于热加载的不安全性,一般不会用于正式的生产环 ...
- 是可忍孰不可忍!!nodepad++作者台独分子,恶毒言论!!!
本来用了两年这个软件吧,不带任何情感的,单纯辅助工具.直到今天,在GitHub上,发现了这个作者以及一些同党都是一群尼玛生在中国骂中国的狗币. https://github.com/notepad-p ...
- 使用jquery插件uploadfive、jcrop实现头像上传
1.html页面部分代码:(实现选着图片时,jcrop能够刷新图片) <script type="text/javascript"> $(function(){ $(& ...
- 不想用锐捷怎么办?锐捷出问题|锐捷不能用怎么办?用menohust代替吧
首先获取 MentoHUST(代替锐捷网络认证客户端) V4.1.0.2001 绿色免费版 解压到任意目录 用管理员身份 启动 安装&卸载 .bat(右键用管理员运行) 这个文件可能乱码了 ...
- 基于MVC的RESTful风格的实现
基于MVC的RESTful风格的实现 1.RESTful风格阐述 REST服务是一种ROA(Resource-Oriented Architecture,面向资源的架构)应用.主要特点是方法信息存在于 ...