《Java大学教程》—第14章 抽象、继承和接口
自测题:
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章 抽象、继承和接口的更多相关文章
- 正在学习的Java大学教程
推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...
- “全栈2019”Java第五十二章:继承与初始化详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第四十六章:继承与字段
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第四十四章:继承
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Java面向对象程序设计第14章3-8和第15章6
Java面向对象程序设计第14章3-8和第15章6 3.完成下面方法中的代码,要求建立一个缓冲区,将字节输入流中的内容转为字符串. import java.io.*; public class tes ...
- “全栈2019”Java第六十六章:抽象类与接口详细对比
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 《Java大学教程》—第17章 Java聚焦类框架
由所有聚焦类构成,在java.util包中,包含三个重要接口:* List列表:元素为单个对象,元素在列表中是有序.可重复* Set集合:元素为单个对象,元素在集合中无序.不可重复* ...
- 《Java大学教程》—第8章 通过继承扩展类
8.2 继承(inheritance):继承是指在类之间共享属性和方法.继承关系是一种层次关系.在继承关系中位于顶部的类称为超类(或基类),位于下面的类称为子类(或派生类).类型转换(type ...
- 《Java大学教程》—第24章 Java的背景
本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2 语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...
随机推荐
- redis的Pub/Sub
redis的Pub/Sub机制类似于广播架构,Subscriber相当于收音机,可以收听多个channel(频道),Publisher(电台)可以在channel中发布信息. 命令介绍 PUBLISH ...
- ife 零基础学院 day 2
第二天:给自己做一个在线简历吧 最后的验证,提出了几个问题,尝试解答一下 HTML是什么,HTML5是什么 HTML的定义摘抄自w3school的HTML 简介 HTML 是用来描述网页的一种语言. ...
- C# 实现Jwtbearer Authentication
Jwtbearer Authentication 什么是JWT JWT(JSON Web Token), 顾名思义就是在Web上以JSON格式传输的Token(RFC 7519). 该Token被设计 ...
- 从零开始学安全(三十)●使用sqlmap对网站一步步渗透
常规注入步骤第一步注入点-u "url" 判断是否是注入点 有就判断用户的权限第二步获取数据库 所有的 -u "url" --dbs第三步 查看应用程序所有数据 ...
- [android] 代码注册广播接收者&利用广播调用服务的方法
利用广播调用服务里面的方法,间接的方式调用服务内部的方法,与现实中差不多,请媒体曝光 主界面里面 在界面创建的时候开启一下服务普通的startService()方法 发送一条广播出去 获取Intent ...
- php opcodes运行原理
谈下php的运行原理--Opcodes. 比如以下一段简单的代码: <?php echo '周伯通‘: ?> 执行这段代码会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend) ...
- Java学习笔记之——static关键字
static属于类的,不属于任何一个对象的 static关键字的应用场景: 1.静态代码块:在类下用static修饰的代码块 static{ 代码: } 只能执行一次,是在第一次使用类之前执行 类加载 ...
- linux下ftp服务器搭建
1.yum install vsftpd 使用yum安装ftp 2.创建并授权ftp文件目录 mkdir -P /ftp/ftpadmin chmod -R 777 /ftp/ftp ...
- C#弹出窗体、C#导出Excel、C#数据展示框、C#弹出框
1.new 一个窗体,然后设置窗体属性. 2.添加数据展示控件,显示数据. 3.添加按钮控件,调用导出Excel代码,实现导出Excel功能. using System; using System.C ...
- 真实世界的脉络].(英)戴维.多伊奇.pdf
[真实世界的脉络].(英)戴维.多伊奇.pdf 宇宙.时间.生命.等等,如果用量子物理学.计算机科学.进化论.认识论将这些最基本而又复杂的问题纠缠在一起时,那将会是一幅什么样的图景呢?也许,我们穷尽一 ...