自测题:
1.    解释抽象和抽象数据类型的概念。P333
抽象的概念是仅仅关注对象可以完成什么工作,而不必担心如何完成工作的细节。
类模板通常被称为抽象数据类型。因为这类数据暴露给用户的所有信息仅仅是方法的描述(输入、输出和行为)和数据的相关信息(属性)。

2.    动态(运行时)绑定和静态(编译时)绑定的区别。P335
编译时绑定(compile-time binding)或静态绑定(static binding)技术:
当一个类的代码被编译后,该类的每个方法的代码都会随之编译;编译器将确保该类的对象接收一个调用其方法的消息时,
程序都会跳转到该方法的代码的存储位置--该方法的指令将会被执行,之后程序将返回最初的位置。

运行时绑定(run-time binding)或动态绑定(dynamic binding)技术:
每次创建一个新的对象时,必须记录其方法存储位置的信息;这样对于调用哪个方法的决定可以推迟到运行时决定。

3.
a)    解释Java中接口和适配器的区别。
接口:(P336)是一个类的所有方法都声明为抽象方法。因此实现接口时必须为该接口的所有方法编码。
适配器:(adapter,P348)是一个特殊的类,实现了接口的所有方法,扮演类与接口之间的中介角色,继承适配器类就不必为所有的方法编码。

b)

public interface SomeInterface{
public void method1();
public int method2();
}
public SomeAdapter extends SomeInterface{
public void method1(){ }
pupblic int method2(){ }
}

4.    解释内部类的作用,描述内部类的使用方法。P349
在Java中一个类只允许继承一个超类,不能继承多个超类(多继承,multiple inheritance)。为了继承业务类,又能够使用适配器类,可以借助内部类来实现。
即在其他类的内部创建一个类,这个内部类继承适配器类。这个内部类不能为程序中其他类服务,从而实现更好地封装。

5.    第7章的Oblong类的toString方法。

public String toString(){
return "Length:"+length+",\t"+"Height:"+height;
}

编程练习:代码附件
1.    RedCircle.java

2.
a)    Checkable.java
b)    BankAccount.java   
c)    RunAccount.java       
d)    Oblong.java        OblongTester.java
注:length和heigth属性本身就定义为double,为何还要整数呢?所以我只考虑了非负的问题。

3.    DrawRectangle.java            DrawRectangleWithAdapter.java
    RunDrawRectangle.java        RanDrawRectangleWithAdapter.java

4.    SomeGraphicsClass.java    // 这个类为了给第5题服务,部分代码修改了,有些专属部分放在子类中定义。
    Question4.java
   
5.    Question5.java

《Java大学教程》—第14章 抽象、继承和接口的更多相关文章

  1. 正在学习的Java大学教程

    推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...

  2. “全栈2019”Java第五十二章:继承与初始化详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. “全栈2019”Java第四十六章:继承与字段

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. “全栈2019”Java第四十四章:继承

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. Java面向对象程序设计第14章3-8和第15章6

    Java面向对象程序设计第14章3-8和第15章6 3.完成下面方法中的代码,要求建立一个缓冲区,将字节输入流中的内容转为字符串. import java.io.*; public class tes ...

  6. “全栈2019”Java第六十六章:抽象类与接口详细对比

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. 《Java大学教程》—第17章 Java聚焦类框架

    由所有聚焦类构成,在java.util包中,包含三个重要接口:*    List列表:元素为单个对象,元素在列表中是有序.可重复*    Set集合:元素为单个对象,元素在集合中无序.不可重复*    ...

  8. 《Java大学教程》—第8章 通过继承扩展类

    8.2    继承(inheritance):继承是指在类之间共享属性和方法.继承关系是一种层次关系.在继承关系中位于顶部的类称为超类(或基类),位于下面的类称为子类(或派生类).类型转换(type ...

  9. 《Java大学教程》—第24章 Java的背景

    本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2    语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...

随机推荐

  1. 【转】JS正则表达式大全(整理详细且实用)

    正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...

  2. c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错

    如果一个对象的值为null,那么它调用扩展方法时会报错吗? Person p = null ; p.ExtendMethod(); 上述代码出现的情况不会报错,刚开始遇到这种情况时很纳闷,就去问了大牛 ...

  3. Linux配置2个或多个Tomcat同时运行

    一.问题说明今天操作Linux部署项目的时候,公司领导要求,只给一个服务器,但是有2个项目要部署,而且需要独立分开运行. 二.解决方法Linux配置两个或多个Tomcat,一个Tomcat对应部署一个 ...

  4. 从零开始学安全(二十五)●用nmap做端口扫描

    以上是常用的端口扫描 -T 用法 每个级别发包时间  当没有使用T 时默认的使用T3级别发包 半开扫描  先探测主机是否存活 再用-sS  扫描端口   容易造成syn 包攻击 就是利用僵尸主机  进 ...

  5. awk 详解

    AWK 简介 AWK是一种优良的文本处理工具.它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho .Pete ...

  6. 将Hexo博客部署到云主机

    摘要: 在云主机上搭建一个git裸仓库,然后使用nginx作为网页服务器,就可以轻松将Hexo博客通过git部署到云主机上. 这是一个忧伤的故事 我的博客KiwenLau之前部署在Coding Pag ...

  7. 数据库_Redis 入门基础到高级

    一.PHP消息队列实现及应用 二.消息队列的优缺点 三.消息队列的配置和准备工作 案例如下: 下面是队列表字段及属性 四.Mysql订单队列 1.接受订单,并写入数据 order.php <?p ...

  8. UOJ#310. 【UNR #2】黎明前的巧克力(FWT)

    题意 题目链接 Sol 挂一个讲的看起来比较好的链接 然鹅我最后一步还是没看懂qwq.. 坐等SovietPower大佬发博客 #include<bits/stdc++.h> using ...

  9. LNMP的配置与优化

    一.LNMP的下载 LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora.Debian/Ubuntu/Raspbian/Deepin VPS或独立主机安 ...

  10. Dynamics 365 Online-Relevance Search

    区别于Quick Find,以及Full-Text Quick Find,Dynamics 365 Online有了一个特有的Search功能:Relevance Search.至于为什么是Onlin ...