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

news2024/11/24 4:03:46

一、习题介绍

第十三章

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;

    }



    @Override

    public double getArea() {

        // 计算三角形面积的公式

    }



    @Override

    public 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);

    }



    @Override

    public 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;

    }



    @Override

    public double getArea() {

        return (2 + (4 * Math.sqrt(2))) * side * side;

    }



    @Override

    public double getPerimeter() {

        return 8 * side;

    }



    @Override

    public int compareTo(Octagon other) {

        return Double.compare(this.getArea(), other.getArea());

    }



    @Override

    public Octagon clone() {

        try {

            return (Octagon) super.clone();

        } catch (CloneNotSupportedException e) {

            // Handle exception

        }

        return null;

    }

    // Other methods

}



// 测试程序逻辑

// 创建一个边长为5的 Octagon 对象

// 显示其面积和周长

// 使用 clone 方法创建新对象

// 使用 compareTo 方法比较两个对象

 结语 

相信自己的力量

相信自己的梦想

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

!!!

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

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

相关文章

【做一道算一道】太平洋大西洋水流问题

太平洋大西洋水流问题 有一个 m n 的矩形岛屿&#xff0c;与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界&#xff0c;而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights &…

零基础开始学习鸿蒙开发-读书app简单的设计与开发

目录 1.首页设计 2.发现页面的设计 3.设置页面的设计 4.导航页设计 5.总结&#xff1a; 6.最终的效果 1.首页设计 Entry Component export struct home {State message: string 首页build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.B…

Golang-map理解

golang-map语雀笔记整理 map的底层实现hmapbmap map是如何做到O(1)的复杂度的&#xff1f;map扩容策略 师兄问题回答 map的底层实现 hmap hmap的结构体核心字段有&#xff1a;buckets 桶数组地址&#xff0c; B 定位值&#xff0c;桶的数目是2^B个&#xff0c; count 当前map的…

Java基础(三)——类和对象、构造方法

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 ⚡开源项目&#xff1a; rich-vue3 &#xff08;基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL&#xff09; &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1…

Vue-cli项目及Element UI 环境搭建 保姆级教程

一、Vue-cli介绍及其作用 什么是Vue-cli手脚架 vue-cli 官方提供的一个脚手架&#xff0c;用于快速生成一个 vue 的项目模板&#xff1b;预先定义 好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven 项目时可以选择创建一个 骨架项目&#xff0c;这个骨架项目就是脚…

环回接口处理 IP 数据报的过程及 Loopback 接口的主要作用

环回接口处理 IP 数据报的过程 IPv4 中 传给环回地址&#xff08;127.0.0.1&#xff09;的任何数据均作为 IP 输入&#xff0c;直接送到环回接口&#xff08;环回&#xff1a;IP 输入队列&#xff09;。 传给广播地址或多播地址的数据报&#xff0c;会复制一份传给环回接口&…

MySQL高阶:事务和并发

事务和并发 1. 事务创建事务 2. 并发和锁定并发问题 3. 事务隔离等级3.1 读取未提交隔离级别3.2 读取已提交隔离级别3.3 重复读取隔离级别3.4 序列化隔离级别 4. 死锁 1. 事务 事务&#xff08;trasaction&#xff09;是完成一个完整事件的一系列SQL语句。这一组SQL语句是一条…

昇思25天学习打卡营第02天 | 快速入门

昇思25天学习打卡营第02天 | 快速入门 文章目录 昇思25天学习打卡营第02天 | 快速入门数据准备网络构建模型训练模型测试迭代数据集模型保存加载模型总结打卡 数据准备 MindSpore通过Dataset和Transforms实现高效的数据预处理 使用download下载数据&#xff0c;并创建数据集对…

Qt项目天气预报(8) - 绘制温度曲线 + 回车搜索(最终篇)

全部内容在专栏&#xff1a; Qt项目 天气预报_mx_jun的博客-CSDN博客 目录 绘制温度曲线 事件过滤器在子控件上绘图 子控件下载事件过滤器 事件过滤器进行绘图 - eventFilter 画初步高温曲线 画初步低温曲线 效果演示 画低温曲线 画高温曲线 效果演示 按下回车搜索: …

LDM论文解读

论文名称&#xff1a;High-Resolution Image Synthesis with Latent Diffusion Models 发表时间&#xff1a;CVPR2022 作者及组织&#xff1a;Robin Rombach, Andreas Blattmann, Dominik Lorenz,Patrick Esser和 Bjorn Ommer, 来自Ludwig Maximilian University of Munich &a…

AI奏响未来乐章:音乐界的革命性变革

AI在创造还是毁掉音乐 引言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;正在逐渐渗透到我们生活的每一个角落&#xff0c;音乐领域也不例外。AI技术的引入&#xff0c;不仅为音乐创作、教育、体验带来了革命性的变革&#xff0c;更为整个音乐产业注入了…

顺序表应用——通讯录

在本篇之前的顺序表专题我们已经学习的顺序表的实现&#xff0c;了解了如何实现顺序表的插入和删除等功能&#xff0c;那么在本篇当中就要学习基于顺序表来实现通讯录&#xff0c;在通讯录当中能实现联系人的增、删、查改等功能&#xff0c;接下来就让我们一起来实现通讯录吧&a…

民用无人机企业招标投标需要资质证书详解

一、基础资质 在民用无人机企业的招标投标过程中&#xff0c;基础资质是首要考虑的因素。这些资质通常包括企业注册资质、税务登记证、组织机构代码证等。 1.1 企业注册资质 企业应具备合法的注册资质&#xff0c;即营业执照。该执照应包含企业名称、注册地址、法定代表人、…

Java [数据结构] Deque与Queue

&#x1f93a;深入理解 Java 中的 Deque 和 Queue&#x1f93a; 在现代软件开发中&#xff0c;数据结构是构建高效、可维护代码的基础。 Java 作为一门广泛应用的编程语言&#xff0c;其丰富的集合框架&#xff08;Collections Framework&#xff09;为开发者提供了多种强大的…

Zabbix 排坑版 Centos7

systemctl stop firewalld;systemctl disable firewalld;setenforce 0sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/configzabbix源地址,可以自己选版本&#xff0c;安装都大差不差 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5…

【车载开发系列】S32 Design Studio工具安装步骤

【车载开发系列】S32 Design Studio工具安装步骤 S32 Design Studio工具安装步骤 【车载开发系列】S32 Design Studio工具安装步骤※关键字提炼※一. 准备工作二. 下载安装包三. 获取License许可四. 开始预安装五. 开始正式安装六. 启动软件七. 安装插件八. 卸载插件九. 确认安…

【操作系统】进程管理——进程控制和进程通信(个人笔记)

学习日期&#xff1a;2024.6.30 内容摘要&#xff1a;进程控制的概念&#xff0c;进程控制相关的“原语”&#xff0c;进程通信 进程控制 原语 进程控制用“原语”实现。原语是一种特殊的程序&#xff0c;它的执行具有原子性&#xff0c;也就是说&#xff0c;这段程序的执行…

vs code python开发笔记

目录 选择python 解析器 安装插件 不全&#xff1a; 调试启动目录问题&#xff1a; 2.选择python解释器 选择python 解析器 ctrl shift P select interpreter 安装插件 不全&#xff1a; remote ssh python debuger 左下角&#xff0c;点击左右左右箭头&#xff0c;远程…

后端之路第三站(Mybatis)——JDBC跟Mybatis、lombok

一、什么是JDBC JDBC就是sun公司研发的一套通过java来操控数据库的工具&#xff0c;对应不同的数据库系统有不同的JDBC&#xff0c;而他们统称【驱动】&#xff0c;这就是上一篇我们提到创建Mybatis项目时要引入的依赖、以及连接数据库四要素里的第一要素。 JDBC有自己一套原始…

Redis 7.x 系列【8】数据类型之哈希(Hash)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 HSET2.2 HGET2.3 HDEL2.4 HEXISTS2.5 HGETALL2.6 HKEYS2.7 HLE…