自测题:
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. redis的Pub/Sub

    redis的Pub/Sub机制类似于广播架构,Subscriber相当于收音机,可以收听多个channel(频道),Publisher(电台)可以在channel中发布信息. 命令介绍 PUBLISH ...

  2. ife 零基础学院 day 2

    第二天:给自己做一个在线简历吧 最后的验证,提出了几个问题,尝试解答一下 HTML是什么,HTML5是什么 HTML的定义摘抄自w3school的HTML 简介 HTML 是用来描述网页的一种语言. ...

  3. C# 实现Jwtbearer Authentication

    Jwtbearer Authentication 什么是JWT JWT(JSON Web Token), 顾名思义就是在Web上以JSON格式传输的Token(RFC 7519). 该Token被设计 ...

  4. 从零开始学安全(三十)●使用sqlmap对网站一步步渗透

    常规注入步骤第一步注入点-u "url" 判断是否是注入点 有就判断用户的权限第二步获取数据库 所有的 -u "url" --dbs第三步 查看应用程序所有数据 ...

  5. [android] 代码注册广播接收者&利用广播调用服务的方法

    利用广播调用服务里面的方法,间接的方式调用服务内部的方法,与现实中差不多,请媒体曝光 主界面里面 在界面创建的时候开启一下服务普通的startService()方法 发送一条广播出去 获取Intent ...

  6. php opcodes运行原理

    谈下php的运行原理--Opcodes. 比如以下一段简单的代码: <?php echo '周伯通‘: ?> 执行这段代码会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend) ...

  7. Java学习笔记之——static关键字

    static属于类的,不属于任何一个对象的 static关键字的应用场景: 1.静态代码块:在类下用static修饰的代码块 static{ 代码: } 只能执行一次,是在第一次使用类之前执行 类加载 ...

  8. linux下ftp服务器搭建

    1.yum install vsftpd  使用yum安装ftp 2.创建并授权ftp文件目录   mkdir -P /ftp/ftpadmin       chmod -R 777 /ftp/ftp ...

  9. C#弹出窗体、C#导出Excel、C#数据展示框、C#弹出框

    1.new 一个窗体,然后设置窗体属性. 2.添加数据展示控件,显示数据. 3.添加按钮控件,调用导出Excel代码,实现导出Excel功能. using System; using System.C ...

  10. 真实世界的脉络].(英)戴维.多伊奇.pdf

    [真实世界的脉络].(英)戴维.多伊奇.pdf 宇宙.时间.生命.等等,如果用量子物理学.计算机科学.进化论.认识论将这些最基本而又复杂的问题纠缠在一起时,那将会是一幅什么样的图景呢?也许,我们穷尽一 ...