java编程思想第四版第七章习题
2024-09-01 11:57:35
- (略)
- (略)
- (略)
- (略)
- 创建两个带有默认构造器(空参数列表)的类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); }
} - (略)
- (略)
最新文章
- Apworks框架实战(二):开始使用
- [转]oracle学习入门系列之五内存结构、数据库结构、进程
- Linux中升级更新命令yum upgrade和yum update的区别
- arrayPointer
- [置顶] Direct UI
- vue.js自定义指令入门
- Sourcetree的安装与使用
- HDU 5446
- elasticsearch5安装
- Weka中数据挖掘与机器学习系列之数据格式ARFF和CSV文件格式之间的转换(五)
- 实验1 单片机IO口应用及数码管显示
- OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法
- Android 启动、绘制、显示过程
- 用ELK打造可视化集中式日志
- c#中如何保存焦点控件?
- Maven报错:maven-archetype-webapp:RELEASE from any of the configured repositories
- MySQL------代码1024,can&#39;t get hostname for your address解决方法
- [C++] Vtable(虚函数表)
- URAL - 1902 Neo-Venice
- PIE SDK波段运算
热门文章
- MS09-012 PR提权
- 利用ansible书写playbook在华为云上批量配置管理工具自动化安装ceph集群
- 如何利用Fiddler4进行Android APP / IOS APP抓包
- 详解Java8 Optional类{最全}
- 在.net core3.0中使用SignalR实现实时通信
- 哈夫曼树C++实现详解
- 云开发如何解决serverless对端的最后一公里问题
- Java多线程编程(六)单例模式与多线程
- 常用html转义符,JavaScript转义符
- vue引入css文件报错Unrecognised input