java编程思想第四版第七章习题
- (略)
- (略)
- (略)
- (略)
- 创建两个带有默认构造器(空参数列表)的类A和类B。从A中继承产生一个名为C的新,并在C内创建一个B类的成员。不要给C编写构造器。创建一个C类的对象并观察其结果。
package net.mindview.reusing; public class A {
public A(){
System.out.println("A");
}
} package net.mindview.reusing; public class B {
public B(){
System.out.println("B");
}
} package net.mindview.reusing; public class C extends A {
B b = new B();
public static void main(String[] args) {
C c = new C(); }
} - (略)
- (略)
- (略)
- 创建一个Root类,令其含有名为Component1、Component 2、Component3的类的各一个实例(这些也由你写)。从Root中派生一个类Stem,也含有上述各“组成部分”。所有的类都应带有可打印出类的相关信息的默认构造器
package net.mindview.reusing; public class Root {
private Component1 c1 = new Component1();
private Component2 c2 = new Component2();
private Component3 c3 = new Component3(); public Root() {
System.out.println("Root");
System.out.println("Root->c1");
System.out.println("Root->c2");
System.out.println("Root->c3");
} } package net.mindview.reusing; public class Component1 { public Component1() {
System.out.println("Component1");
} } package net.mindview.reusing; public class Component2 { public Component2() {
System.out.println("Component2");
} } package net.mindview.reusing; public class Component3 { public Component3() {
System.out.println("Component3");
} } package net.mindview.reusing; public class Stem extends Root { private Component1 c1 = new Component1();
private Component2 c2 = new Component2();
private Component3 c3 = new Component3();
public Stem() {
System.out.println("RootChild");
System.out.println("Stem->c1");
System.out.println("Stem->c2");
System.out.println("Stem->c3");
} public static void main(String[] args) {
Root t = new Stem(); } } - (略)可参考总结中的第5点,使用代理模式。
- (略)
- (略)
- (略)
- 在Car.java中给Engine添加一个service(),并在main()中调用该方法。
package net.mindview.reusing; class Engine {
public void start(){}
public void rev(){}
public void stop(){}
public void Service() {
System.out.println("Engine.Service");
}
} class Wheel {
public void inflate(int psi){}
} class Window{
public void rollup(){}
public void rolldown(){}
} class Door{
public Window window = new Window();
public void open(){}
public void close(){}
} public class Car {
public Engine engine = new Engine();
public Wheel[] wheels = new Wheel[];
public Door left = new Door(),right = new Door();
public Car(){
for(int i=;i<; i++){
wheels[i] = new Wheel();
}
}
public static void main(String[] args) {
Car car = new Car();
car.left.window.rollup();
car.wheels[].inflate();
car.engine.Service();
}
} - (略)
- 创建一个名为Amphibian的类,由此继承产生一个成为Frog的类,在基类中设置适当的方法,在main()中,创建一个Frog向上转型至Amphibian, 然后说明所有方法都可工作
package net.mindview.reusing; //两栖动物
class Amphibian{
//交配
public void mating(Amphibian amphibian){
System.out.println("两栖动物交配");
}
}
//青蛙
public class Frog extends Amphibian{ public static void main(String[] args) {
Frog frog = new Frog();
frog.mating(frog); }
} - 修改练习16,使Frog覆盖基类中方法的定义。请留心main中都发生了什么
package net.mindview.reusing; //两栖动物
class Amphibian{
//交配
public void mating(Amphibian amphibian){
System.out.println("两栖动物交配");
}
}
//青蛙
public class Frog extends Amphibian{
public void mating(Frog frog){
System.out.println("青蛙交配");
}
public static void main(String[] args) {
Frog frog = new Frog();
frog.mating(frog); }
} - (略)
- (略)
java编程思想第四版第七章习题的更多相关文章
- Java编程思想第四版*第七章*个人练习
欢迎加群:239063848 成团的笔记:该组仅用于技术共享和交流,问题和答案公布 潘基聊天.禁止广告.禁止招聘-- 练习1:(2)创建一个简单的类.第二个类中,将一个引用定义为第一个类的对象.运用惰 ...
- java编程思想第四版第七章总结
1. 实现类的复用通常有两种方式 组合:在新的类中产生现有类的对象 继承:按照现有类的类型来创造新类 2. 一个特殊的方法toString() 在非基本类型的对象中, 都有toString()方法 当 ...
- java编程思想第四版第十一章习题
第一题 package net.mindview.holding.test1; import java.util.ArrayList; import java.util.List; /** * 沙鼠 ...
- java编程思想第四版第六章习题
(略) (略) 创建两个包:debug和debugoff,他们都包含一个相同的类,该类有一个debug()方法,第一个版本显示发送给控制台的String参数,而第二版本什么也不做,使用静态import ...
- java编程思想第四版第五章习题
创建一个类, 它包含一个未初始化的String引用.验证该引用被Java初始化成了null package net.mindview.initialization; public class Test ...
- java编程思想第四版第十三章字符串 习题
fas 第二题 package net.mindview.strings; import java.util.ArrayList; import java.util.List; /** * 无限循环 ...
- java编程思想第四版第六章总结
1. 代码重构 为什么f要代码重构 第一次代码不一定是完美的, 总会发现更优雅的写法. 代码重构需要考虑的问题 类库的修改不会破坏客户端程序员的代码. 源程序方便扩展和优化 2. 包 创建一个独一无二 ...
- java编程思想 第四版 第六章 个人练习
欢迎加群:239063848 进群须知:本群仅用于技术分享与交流.问题公布与解答 禁止闲聊.非诚勿扰 练习1:(1)在某个包中创建一个类,在这个类所处的包的外部创建该类的一个实例. import mi ...
- java编程思想第四版第十三章字符串 总结
1. String和StringBulider的使用 通过书中介绍, 我们得知如下结论: 当使用+连接符将字符串进行拼接的时候, 编译器会进行自动优化为使用StringBuilder连接字符串. 当在 ...
随机推荐
- 宝塔面板6.x版本前台存储XSS+后台CSRF组合拳Getshell
对于宝塔漏洞复现和练习 0×00 什么是宝塔面板 宝塔面板是一款使用方便,功能强大且终身免费的服务器管理软件,支持Linux 与Windows 系统.一键配置:LAMP / LNMP ,网站,数据库 ...
- 机器学习:weka中添加自己的分类和聚类算法
不管是实验室研究机器学习算法或是公司研发,都有需要自己改进算法的时候,下面就说说怎么在weka里增加改进的机器学习算法. 一 添加分类算法的流程 1 编写的分类器必须继承 Classifier或是Cl ...
- [BZOJ29957] 楼房重建 - 线段树
2957: 楼房重建 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 3294 Solved: 1554[Submit][Status][Discus ...
- opencv::霍夫圆变换
霍夫圆检测原理 从平面坐标到极坐标转换三个参数 假设平面坐标的任意一个圆上的点,转换到极坐标中: 处有最大值,霍夫变换正是利用这个原理实现圆的检测. cv::HoughCircles 因为霍夫圆检测对 ...
- 2019.10.26 CSP%您赛第三场
\(CSP\)凉心模拟^_^ --题源\(lqx.lhc\)等各位蒟蒻 题目名称 比赛 传递消息 开关灯 源文件名 \(competition.cpp\) \(message.cpp\) \(ligh ...
- CodeForces - 1214D B2. Books Exchange (hard version)
题目链接:http://codeforces.com/problemset/problem/1249/B2 思路:用并查集模拟链表,把关系串联起来,如果成环,则满足题意.之后再用并查集合并一个链,一个 ...
- 使用animate.css
今天有个一前辈来看了一下我的小程序啊,说写的还行就是可以不用只按照ui给的图写界面,自己可以添加一些动态的炫酷效果,不用不知道一用吓一跳啊,用之前觉得好好一个界面为什么要搞那些花里胡哨的东西,单纯一点 ...
- Linux下zkui的安装
前提:部署好java环境 1.拉取安装包 git clone https://github.com/DeemOpen/zkui.git 2.进入zkui目录 cd zkui/ 3.使用mvn命令进行编 ...
- MongoDB一次节点宕机引发的思考(源码剖析)
目录 简介 日志分析 副本集 如何实现 Failover 心跳的实现 electionTimeout 定时器 业务影响评估 参考链接 声明:本文同步发表于 MongoDB 中文社区,传送门: http ...
- mysql的一些常用操作(二)
紧跟上一节,我们创建了四个表: Student.Teacher.Course.Score 接下来就是实际的一些操作了:1.求每门课程的学生人数. select course.cname '课程名称', ...