JAVA期末速成库(12)第十三章

一、习题介绍

第十三章

Check Point:P501 13.3,13.17,13.28,13.29

Programming Exercise:13.1,13.6,13.11

二、习题及答案

Check Point:

13.3

True or false?

a. An abstract class can be used just like a nonabstract class except that you cannot

use the new operator to create an instance from the abstract class.

b. An abstract class can be extended.

c. A subclass of a nonabstract superclass cannot be abstract.

d. A subclass cannot override a concrete method in a superclass to define it as abstract.

e. An abstract method must be nonstatic.

13.3对还是错?

a.抽象类可以像非抽象类一样使用,只是不能

使用new操作符从抽象类创建实例。

b.抽象类可以被扩展。

c.非抽象超类的子类不能是抽象的。

d.子类不能重写父类中的具体方法来将其定义为抽象。

e.抽象方法必须是非静态的。

答:a. 对:抽象类不能使用 new 操作符直接创建实例,但可以被其他类继承。

    b. 对:抽象类被其他类继承

    c、d 错:非抽象的子类可以是抽象的,也可以重写父类中的具体方法,但不可以将其定义为抽象方法。

    e. 对:抽象方法必须是非静态的,因为抽象方法没有实现,而静态方法不能被子类覆盖。

13.17 True or false? If a class implements Comparable, the object of the class can invoke the compareTo method.

13.17对还是错?如果一个类实现了Comparable,则该类的对象可以调用compareTo方法。

答:对:如果一个类实现了 Comparable 接口,那么该类的对象可以调用 compareTo 方法,用于比较对象。

13.28

Define the terms abstract classes and interfaces. What are the similarities and differ

ences between abstract classes and interfaces?

13.28定义术语抽象类和接口有什么相似之处和不同之处?抽象类和接口之间的关系?

答:抽象类:不能被实例化,可以包含抽象方法和具体方法,可以有成员变量。

接口:完全抽象,不能包含具体的实现,所有的方法默认都是抽象的,可以有默认方法和静态方法,从Java 8开始。

相似之处:都可以被其他类实现或继承,都可以定义抽象方法。

不同之处:抽象类可以提供部分实现,接口完全抽象;一个类可以实现多个接口,但只能继承一个抽象类;接口中的方法默认是public的,抽象类中的方法可以有多种访问修饰符。

13.29 True or false?

a. An interface is compiled into a separate bytecode file.

b. An interface can have static methods.

c. An interface can extend one or more interfaces.

d. An interface can extend an abstract class.

e. An abstract class can extend an interface.

13.29对还是错?

a.将接口编译成单独的字节码文件。

b.接口可以有静态方法。

c.一个接口可以扩展一个或多个接口。

d.接口可以扩展抽象类。

e.抽象类可以扩展接口。

答:a. 对:接口编译后会生成单独的字节码文件。

    b. 对:接口可以有静态方法,从Java 8开始。

    c. 对:一个接口可以扩展一个或多个接口。

    d. 错:接口不能扩展抽象类,但抽象类可以实现一个或多个接口

    e. 对:抽象类可以实现接口。

Programming Exercise:

**13.1 (Triangle class)

Design a new Triangle class that extends the abstractGeometricObject class. Draw the UML diagram for the classes Triangle and GeometricObject and then implement the Triangle class. Write a test program that prompts the user to enter three sides of the triangle, a color, and a Boolean value to indicate whether the triangle is filled. The program should create a Triangle object with these sides and set the color and filled properties using the input. The program should display the area, perimeter, color, and true or false to indicate whether it is filled or not.

**13.1 (Triangle类)设计一个新的Triangle类来扩展抽象类GeometricObject类。为类Triangle绘制UML图和GeometricObject,然后实现Triangle类。编写测试程序,提示用户输入三角形的三条边,一种颜色和一个布尔值,指示三角形是否被填充。程序应该创建用这些边创建一个三角形对象,并设置颜色和填充属性输入。程序应该显示区域、周长、颜色和真或假表示是否已填充。

abstract class GeometricObject {public abstract double getArea();public abstract double getPerimeter();}class Triangle extends GeometricObject {private double side1, side2, side3;private String color;private boolean filled;public Triangle(double side1, double side2, double side3, String color, boolean filled) {this.side1 = side1;this.side2 = side2;this.side3 = side3;this.color = color;this.filled = filled;}@Overridepublic double getArea() {// 计算三角形面积的公式}@Overridepublic double getPerimeter() {return side1 + side2 + side3;}// Getters and setters}

*13.6 (The ComparableCircle class) Define a class named ComparableCircle

that extends Circle and implements Comparable. Draw the UML diagram and

implement the compareTo method to compare the circles on the basis of area.

Write a test class to find the larger of two instances of ComparableCircle objects.

*13.6 (comparablecycle类)

定义一个名为comparablecycle的类。

它扩展Circle并实现Comparable。

绘制UML图和实现compareTo方法,根据面积对圆进行比较。

编写一个测试类来查找ComparableCircle对象的两个实例中较大的一个。

class Circle {private double radius;public Circle(double radius) {this.radius = radius;}public double getArea() {return Math.PI * radius * radius;}// Other methods}class ComparableCircle extends Circle implements Comparable<ComparableCircle> {public ComparableCircle(double radius) {super(radius);}@Overridepublic int compareTo(ComparableCircle other) {return Double.compare(this.getArea(), other.getArea());}}// 测试类逻辑// 创建两个 ComparableCircle 对象// 使用 compareTo 方法找出面积较大的圆

*13.11 (The Octagon class) Write a class named Octagon that extends GeometricObject and implements the Comparable and Cloneable interfaces. Assume that all eight sides of the octagon are of equal length. The area can be computed using the following formula:

area = (2 + 4/22)* side * side

Draw the UML diagram that involves Octagon, GeometricObject, Comparable, and Cloneable. Write a test program that creates an Octagon object with side value 5 and displays its area and perimeter. Create a new object using the clone method and compare the two objects using the compareTo method.

*13.11 (Octagon类)编写一个名为Octagon的类来扩展对可比性和可克隆性的脸。假设八边形的八个边都是等长。这个区域可以用下式计算:

面积=(2 + 4/22)*边*边

绘制UML图,包括八边形、几何对象、可比较,可克隆。编写一个测试程序,创建一个八边形,边值为5的对象,并显示其面积和周长。创建一个新对象使用clone方法并使用compareTo比较两个对象方法。

class Octagon extends GeometricObject implements Comparable<Octagon>, Cloneable {private double side;public Octagon(double side) {this.side = side;}@Overridepublic double getArea() {return (2 + (4 * Math.sqrt(2))) * side * side;}@Overridepublic double getPerimeter() {return 8 * side;}@Overridepublic int compareTo(Octagon other) {return Double.compare(this.getArea(), other.getArea());}@Overridepublic Octagon clone() {try {return (Octagon) super.clone();} catch (CloneNotSupportedException e) {// Handle exception}return null;}// Other methods}// 测试程序逻辑// 创建一个边长为5的 Octagon 对象// 显示其面积和周长// 使用 clone 方法创建新对象// 使用 compareTo 方法比较两个对象

 结语 

相信自己的力量

相信自己的梦想

因为你拥有改变世界的能力

!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nature Climate Change | 中国科学院地理资源所吴朝阳课题组发表生物多样性调控植被物候的研究成果!

本文首发于“生态学者”微信公众号&#xff01; 植被春季物候对气候变化的响应通常是通过测量其温度敏感性&#xff08;ST&#xff0c;温度每升高1度&#xff0c;植被提前展叶的天数&#xff09;来量化。ST是植被在当地历史气候环境的选择压力下演化形成的最优策略&#xff0c;…

第一百三十四节 Java数据类型教程 - Java int数据类型

Java数据类型教程 - Java int数据类型 int数据类型是32位有符号Java原语数据类型。 int数据类型的变量需要32位内存。 其有效范围为-2,147,483,648至2,147,483,647&#xff08;-231至231 - 1&#xff09;。 此范围中的所有整数称为整数字面量。 例如&#xff0c;10&#xf…

Eclipse 悬浮提示:提升编程效率的利器

Eclipse 悬浮提示:提升编程效率的利器 引言 对于广大开发者而言,Eclipse 是一款功能强大的集成开发环境(IDE)。它不仅支持多种编程语言,还提供了丰富的插件和工具,以帮助开发者提高编程效率和代码质量。在本文中,我们将重点探讨 Eclipse 中的一个实用功能——悬浮提示…

刷算法Leetcode---7(二叉树篇)(前中后序遍历)

前言 本文是跟着代码随想录的栈与队列顺序进行刷题并编写的 代码随想录 好久没刷算法了&#xff0c;最近又开始继续刷&#xff0c;果然还是要坚持。 二叉树的题目比之前多了好多&#xff0c;就多分几次写啦~ 这是力扣刷算法的其他文章链接&#xff1a;刷算法Leetcode文章汇总 …

PyTorch读写模型(state_dict、torch.save、torch.load)

1. state_dict 在PyTorch中&#xff0c;state_dict 是一个简单的python的字典对象&#xff0c;将每一层与它的对应参数建立映射关系。(如model的每一层的weights及bias等) 首先&#xff0c;我们来定义一个MLP模型&#xff1a; import torch.nn as nnclass MLP(nn.Module):de…

494. 目标和 Medium

给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 &#xff0c;在 1 之前添加 - &#xff0c;然…

使用Calendar.add进行日期计算

使用Calendar.add进行日期计算 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨在Java中如何使用Calendar.add方法进行日期计算。Calendar类是…

如何在Ubuntu20上离线安装joern(包括sbt和scala)

在Ubuntu 20上离线安装Joern&#xff0c;由于Joern通常需要通过互联网从其官方源或GitHub等地方下载&#xff0c;但在离线环境中&#xff0c;我们需要通过一些额外的步骤来准备和安装。&#xff08;本人水平有限&#xff0c;希望得到大家的指正&#xff09; 我们首先要做的就是…

在QGIS中调用天地图

2019年 1月 1日起&#xff0c;天地图 API及服务接口调用需要获得开发授权&#xff0c;之前使用 QGIS等 GIS软件无法继续调用天地图&#xff0c;这就需要申请一个许可。 一、注册并申请 Key 具体申请可以登录如下地址&#xff1a;https://www.tianditu.gov.cn打开上述网址后点…

速盾:cdn加速哪个好?

在现代互联网时代&#xff0c;网站的速度和稳定性是非常重要的。为了提供最佳的用户体验&#xff0c;许多网站和应用程序都使用CDN&#xff08;内容分发网络&#xff09;来加速其内容的传输。CDN是由位于全球各地的分布式服务器组成的网络&#xff0c;其目的是将内容尽可能快地…

工厂方法模式:概念与应用

目录 工厂方法模式工厂方法模式结构工厂方法适合的应用场景工厂方法模式的优缺点练手题目题目描述输入描述输出描述**提示信息**解题&#xff1a; 工厂方法模式 工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例…

SQLite3的使用

14_SQLite3 SQLite3是一个嵌入式数据库系统&#xff0c;它的数据库就是一个文件。SQLite3不需要一个单独的服务器进程或操作系统&#xff0c;不需要配置&#xff0c;这意味着不需要安装或管理&#xff0c;所有的维护都来自于SQLite3软件本身。 安装步骤 在Linux上安装SQLite…

《概率论与数理统计》期末复习笔记_下

目录 第4章 随机变量的数字特征 4.1 数学期望 4.2 方差 4.3 常见分布的期望与方差 4.4 协方差与相关系教 第5章 大数定律和中心极限定理 5.1 大数定律 5.2 中心极限定理 第6章 样本与抽样分布 6.1 数理统汁的基本概念 6.2 抽样分布 6.2.1 卡方分布 6.2.2 t分布 6.…

Winform使用HttpClient调用WebApi的基本用法

Winform程序调用WebApi的方式有很多&#xff0c;本文学习并记录采用HttpClient调用基于GET、POST请求的WebApi的基本方式。WebApi使用之前编写的检索环境检测数据的接口&#xff0c;如下图所示。 调用基于GET请求的无参数WebApi 创建HttpClient实例后调用GetStringAsync函数获…

技术打包 催化剂浸渍制作方法设备

网盘 https://pan.baidu.com/s/1Bybbyy5qEA2uTUlaELmWwg?pwdepdk 改性加氢处理催化剂载体、催化剂及其制备方法和应用.pdf 水滑石基催化剂在高浓度糖转化到1,2-丙二醇中的应用.pdf 海泡石负载铁锰双金属催化剂及其制备方法和应用.pdf 甘油氢解催化剂及其制备方法和应用.pdf 用…

【原理】机器学习中的最小二乘法公式推导过程

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、什么是最小二乘法1.1. 什么是最小二乘法1.2. 最小二乘法的求解公式 二、最小二乘法求解公式的推导 最小二乘法是基本的线性求解问题之一&#xff0c;本文介绍最小二乘法的原理&#xff0c;和最小二法求解公式…

如何使用Spring Boot进行单元测试

如何使用Spring Boot进行单元测试 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Spring Boot项目中进行单元测试&#xff0c;确保代码质量…

Week 4-杨帆-学习总结

目录 28 批量归一化批量规范化的背景和必要性批量规范化的实现理论探讨与争议遇到的问题&解决办法 29 残差网络 ResNet残差网络&#xff08;ResNet&#xff09;的核心概念函数类与嵌套函数类残差块&#xff08;Residual Blocks&#xff09;的结构与功能深度学习框架的应用模…

【学习笔记】Redis学习笔记——第2章:简单动态字符串

第2章&#xff1a;简单动态字符串 Redis用作键值对或AOF缓冲区的字符串为SDS(简单动态字符串)&#xff0c;而不是C语言传统字符串(只用作打印log等不会修改字符串值的地方)。 2.1 SDS的定义 {//SDS字符串长度&#xff08;buf数组中已使用的空间&#xff09;int len;//buf数组…

【Vue】Vue3基础

VUE3基础 1、简介2、创建工程2.1 基于vue-cli创建&#xff08;脚手架webpack&#xff09;2.2 基于vite创建&#xff08;推荐&#xff09;2.3 目录结构2.4 vscode插件推荐 3、核心语法3.1 选项式&#xff08;options API&#xff09;和组合式&#xff08;composition API&#x…