zoukankan      html  css  js  c++  java
  • 第七章-复用类-组合语法

    课后习题:练习1:创建一个简单的类,在第二个类中,将引用定义为第一个类的对象。运用惰性初始化来实例化这个对象。

    我的答案:

    一,个人。

     1 package com.learnJava.test;
     2 
     3 /**
     4  * @Author zhuchangli
     5  * @Date 2019/9/14
     6  **/
     7 
     8 // 灶具
     9 class Cooker{
    10     private String pot; //
    11     private String gas; // 煤气
    12     Cooker(){
    13         pot = "Constructed pot";
    14         gas = "Constructed gas";
    15     }
    16 
    17     public String toString(){
    18         return "pot = " + pot + "
    " +
    19                 "gas = " + gas + "
    " ;
    20     }
    21 }
    22 // 厨房
    23 public class Kitchen {
    24     private String s1 = "happy";
    25     private String s2 = "happy";
    26     private String s3;
    27     private float s4;
    28     private Cooker cooker;
    29 
    30     public Kitchen(){
    31         System.out.println("Inside Cooker");
    32         s3 = "day";
    33         s4 = 3.14f;
    34         cooker = new Cooker();
    35     }
    36 
    37     public String toString(){
    38         return "s1 = " + s1 + "
    " +
    39                 "s2 = " +s2 + "
    " +
    40                 "s3 = " +s3+ " 
    " +
    41                 "s4 =" +s4+ "
    " +
    42                 "cooker= " +cooker+ "
    ";
    43     }
    44 
    45     public static void main(String [] args){
    46         Kitchen kitchen = new Kitchen();
    47         System.out.println(kitchen);
    48     }
    49 }

     二,参考答案写的

     1 package com.learnJava.test;
     2 
     3 /**
     4  * @Author zhuchangli
     5  * @Date 2019/9/14
     6  **/
     7 
     8 // 轮子
     9 class Cycle{
    10     private String name = "Cycle";
    11     public void travle(Cycle c){
    12         System.out.println("Cycle ride "+ c );
    13     }
    14     public String toString(){
    15         return this.name;
    16     }
    17 }
    18 
    19 class Unicycle extends Cycle{
    20 
    21     private String name = "Unicycle";
    22 
    23     public String toString(){
    24         return this.name;
    25     }
    26 }
    27 
    28 class Bicycle extends Cycle{
    29 
    30     private String name = "Bicycle";
    31 
    32     public String toString(){
    33         return this.name;
    34     }
    35 }
    36 
    37 class Tricycle extends Cycle{
    38     private String name = "Tricycle";
    39 
    40     public String toString(){
    41         return this.name;
    42     }
    43 }
    44 
    45 // 骑行
    46 public class Biking {
    47 
    48     public static void ride(Cycle c){
    49         c.travle(c);
    50     }
    51 
    52     public static void main(String [] args){
    53 
    54         Unicycle u = new Unicycle();
    55         Bicycle b = new Bicycle();
    56         Tricycle t = new Tricycle();
    57 
    58         ride(u);
    59         ride(b);
    60         ride(t);
    61     }
    62 }

    三,总结

    1,组合技术,只需要将对象引用置于新类中即可。

    2,每一个非基本类型的对象都有一个toString方法,当编译器需要一个String而你只有一个对象时,自己定义的toString 方法便会被调用。

    3,编译器并不是简单的为每一个引用都创建默认对象。

    4,想初始化这些引用可以在 一下位置进行。

      a,在定义对象的地方,意味着总是能够在构造器被调用之前被初始化。

      b,在类的构造器中。

      c,惰性初始化,在正要使用这些对象之前使用,在生成对象不值得及不必每次都生成对象的情况下,这种方式可以减少额外的负担。

      d,使用实例初始化。

  • 相关阅读:
    DP:Multiplication Puzzle(POJ 1651)
    Heap:Expedition(POJ 2431)
    velocity.js 动画插件
    ES6 新特性
    ps p图
    php 建站 多域名配置 自定义重定向
    移动端开发 资源分享
    拖拽 初体验
    颜色选择器 rgb 与16进制 颜色转换
    web 常用颜色
  • 原文地址:https://www.cnblogs.com/changlili/p/11518383.html
Copyright © 2011-2022 走看看