zoukankan      html  css  js  c++  java
  • java编程思想第四版第七章习题

    1. (略)
    2. (略)
    3. (略)
    4. (略)
    5. 创建两个带有默认构造器(空参数列表)的类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();
              
          }
      }
    6. (略)
    7. (略)
    8. (略)
    9. 创建一个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();
      
          }
      
      }
    10. (略)可参考总结中的第5点,使用代理模式。
    11. (略)
    12. (略)
    13. (略)
    14. 在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[4];
          public Door left = new Door(),right = new Door();
          public Car(){
              for(int i=0;i<4; i++){
                  wheels[i] = new Wheel();
              }
          }
          public static void main(String[] args) {
              Car car = new Car();
              car.left.window.rollup();
              car.wheels[0].inflate(72);
              car.engine.Service();
          }
      }
    15. (略)
    16. 创建一个名为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);
              
          }
      }
    17. 修改练习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);
              
          }
      }
    18. (略)
    19. (略)
  • 相关阅读:
    运维笔记--ubuntu rm删除文件后 恢复
    运维笔记--阿里云服务器系统盘扩容
    运维笔记--阿里云服务器数据盘扩容
    odoo开发笔记--开启后台日志记录
    分布式和集群的区别
    ubuntu16.04 离线安装nginx
    Sqlserver的Transaction做Rollback的时候要小心(转载)
    关于调用方有事务,被调用的SP中也有事务,在嵌套SP中回滚代码的报错处理,好文推荐
    Oracle中row_number()、rank()、dense_rank() 的区别
    ESB企业服务总线到底是什么东西呢?
  • 原文地址:https://www.cnblogs.com/ITPower/p/8528386.html
Copyright © 2011-2022 走看看