Java 第10、11章 本章作业

目录

  • 6 综合编程题
  • 7 成员内部类应用
  • 8 枚举类 & switch

6 综合编程题

在这里插入图片描述
3. 交通工具工厂类:由于在任务中只需要调用其中获得交通工具的方法,可以将方法定义为静态方法,这样就不用先创建工厂类的对象,直接“类名.方法” 即可。为了不让其创建对象,可以将其构造器私有化。

5.一般情况下用Horse作为交通工具,遇到大河时用Boat作为交通工具:编程思路——可以把具体的要求,封装成方法
由于在创建“唐僧”的时候要给他一个交通工具,所以在后来赋值目标交通工具的时候,需要先判断当前对象有没有目标交通工具,可以使用instanceof对当前交通工具进行判断,如果不是目标交通工具,再进行申请。

另外根据常识,马通常始终都是特定的一匹,但船每一次都不同,所以马可以在工厂类中使用**“饿汉式”创建静态对象**,并且需要马的时候每次返回该特定对象;而船每次需要重新创建对象。

*.拓展:过火焰山坐飞机。出于方便加上只过一次火焰山的考虑,我选择直接使用匿名类。

package com.hspedu.chapter10homework06;

public class Homework06 {
    public static void main(String[] args) {
        Person person = new Person("唐僧", Factory.getHorse());
        person.common();
        person.passRiver();
        person.common();
        person.passFire();
    }
}

interface Vehicles {
    public void work();
}

class Horse implements Vehicles {
    @Override
    public void work() {
        System.out.println("horse");
    }
}

class Boat implements Vehicles {
    @Override
    public void work() {
        System.out.println("boat");
    }
}

class Factory {
    private static Horse HORSE = new Horse();
    public static Horse getHorse() {
        return HORSE;
    }
    public static Boat getBoat() {
        return new Boat();
    }
}

class Person {
    private String name;
    private Vehicles vehicles;

    public Person(String name, Vehicles vehicles) {
        this.name = name;
        this.vehicles = vehicles;
    }
    public void passRiver() {
        if (!(vehicles instanceof Boat))
            vehicles = Factory.getBoat();
        vehicles.work();
    }
    public void common() {
        if (!(vehicles instanceof Horse))
            vehicles = Factory.getHorse();
        vehicles.work();
    }
    public void passFire() {
        vehicles = new Vehicles() {
            @Override
            public void work() {
                System.out.println("flight");
            }
        };
    }
}

7 成员内部类应用

在这里插入图片描述
如果想要基于创建的类Car的对象car,调用Car的成员内部类Air,可以创建一个方法返回在car基础上的Air对象。
一开始自己傻了吧唧想在Car里创建一个静态Air对象,但回头想想,岂不是意味着Car类加载之后直接就确定了Air对象,并且所有Car对象的Air对象都会是同一个……

package com.hspedu.chapter10homework07;

public class Homework07 {
    public static void main(String[] args) {
        Car car1 = new Car(-0.1);
        Car car2 = new Car(40.1);
        Car car3 = new Car(12);
        car1.getAir().flow();
        car2.getAir().flow();
        car3.getAir().flow();
    }
}

class Car {
    private double temperature;
    private Air air = new Air();
    public Car(double temperature) {
        this.temperature = temperature;
    }

    public class Air {
        public void flow() {
            if (temperature > 40)
                System.out.println("flow cold air...");
            else if (temperature < 0)
                System.out.println("flow warm air...");
            else
                System.out.println("shut down...");
        }
    }
    public Air getAir() {
        return air;
    }
}

8 枚举类 & switch

在这里插入图片描述
switch的枚举类型之一是枚举类。不废话上代码:

package com.hspedu.chapter10homework08;

public class Homework08 {
    public static void main(String[] args) {
        Color[] colors = Color.values();
        for (Color color: colors) {
            System.out.println(color.ordinal()); // 可以输出序号
            switch (color) {
                case RED:
                    System.out.print("RED: ");
                    color.show();
                    break;
                case BLUE:
                    System.out.print("BLUE: ");
                    color.show();
                    break;
                case BLACK:
                    System.out.print("BLACK: ");
                    color.show();
                    break;
                case YELLOW:
                    System.out.print("YELLOW: ");
                    color.show();
                    break;
                case GREEN:
                    System.out.print("GREEN: ");
                    color.show();
                    break;
                default:
                    System.out.println("No such color");
                    break;
            }
        }
    }
}

interface IF {
    public void show();
}
enum Color implements IF {
    RED(255, 0, 0), BLUE(0, 0, 255), BLACK(0, 0, 0),
    YELLOW(255, 255, 0), GREEN(0, 255, 0);
    private double redValue, greenValue, blueValue;

    Color(double redValue, double greenValue, double blueValue) {
        this.redValue = redValue;
        this.greenValue = greenValue;
        this.blueValue = blueValue;
    }

    @Override
    public void show() {
        System.out.println(redValue + " " + greenValue + " " + blueValue);
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java SSM框架实现疫情居家办公OA系统项目【项目源码+论文说明】

基于java的SSM框架实现疫情居家办公OA系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识…

3.1 内容管理模块 - 工程搭建、课程查询、配置Swagger、数据字典

文章目录 内容管理模块一、基础工程搭建1.1 需求分析1.2 业务流程1.3 数据模型1.4 创建模块工程1.4.1 介绍1.4.2 xuecheng-plus-content 聚合工程1.4.3 模块演示 二、课程查询准备2.1 需求分析2.1.1 业务流程2.1.2 数据模型 2.2 生成PO类2.2.1 新增Maven配置2.2.2 课程基本信息…

文档安全加固:零容忍盗窃,如何有效预防重要信息外泄

文档安全保护不仅需要从源头着手&#xff0c;杜绝文档在使用和传播过程中产生的泄密风险&#xff0c;同时还需要对文档内容本身进行有效的保护。为了防范通过拷贝、截屏、拍照等手段盗窃重要文档内容信息的风险&#xff0c;迅软DSE加密软件提供了文档加密保护功能&#xff0c;能…

用23种设计模式打造一个cocos creator的游戏框架----(十八)责任链模式

1、模式标准 模式名称&#xff1a;责任链模式 模式分类&#xff1a;行为型 模式意图&#xff1a;使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处…

MLX:苹果 专为统一内存架构(UMA) 设计的机器学习框架

“晨兴理荒秽&#xff0c;带月荷锄归” 夜深闻讯&#xff0c;有点兴奋&#xff5e; 苹果为 UMA 设计的深度学习框架真的来了 统一内存架构 得益于 CPU 与 GPU 内存的共享&#xff0c;同时与 MacOS 和 M 芯片 交相辉映&#xff0c;在效率上&#xff0c;实现对其他框架的降维打…

Redis设计与实现之压缩列表

目录 一、 压缩列表 1、ziplist的构成 2、节点的构成 pre_entry_length encoding 和 length content 3、创建新 ziplist 4、将节点添加到末端 5、将节点添加到某个/某些节点的前面 6、删除节点 7、遍历 8、查找元素、根据值定位节点 二、小结 一、 压缩列表 Zipli…

论文降重同义词替换的实践经验与改进建议 快码论文

大家好&#xff0c;今天来聊聊论文降重同义词替换的实践经验与改进建议&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;论文降重同义词替换的实践经验与改…

TS类型体操-简单-实现pick

文章目录 问题描述举例实现 问题描述 不使用 Pick<T, K> &#xff0c;实现 TS 内置的 Pick<T, K> 的功能。 从类型T 中选出符合 K 的属性&#xff0c;构造一个新的类型。 举例 interface Todo {title: stringdescription: stringcompleted: boolean }type TodoPre…

挖矿木马应急响应-案例分析

挖矿木马应急响应-案例分析 linux 终端无法使用系统资源使用异常高 首先解决linux命令无法使用的问题&#xff0c;显示libc.so.6 没有重新连接一下libc文件 查看日志 发现木马运行成功后就日志一直报libc错误 根据信息向上插在日志 向上发现&#xff0c;root用户被爆破后…

【Spring教程30】Spring框架实战:从零开始学习SpringMVC 之 Rest风格简介与RESTful入门案例

目录 1 REST简介2 RESTful入门案例2.1 环境准备2.2 思路分析2.3 修改RESTful风格 3 知识点总结 欢迎大家回到《Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0c;如果您对Maven还很陌生&#xff0c;请移步本人的博文《如何在windows11下安…

windows 10 安装和配置nginx

1 下载nginx 1.1 下载地址&#xff1a;http://nginx.org/en/download.html 1.2 使用解压到安装目录 1.3 更改配置 conf目录下nginx.conf 修改为未被占用的端口&#xff0c;地址改成你的地址 server {listen 9999;server_name localhost;#charset koi8-r;#access_lo…

SQL进阶理论篇(八):SQL查询的IO成本

文章目录 简介数据库缓冲池查看缓冲池的大小数据页加载的三种方式通过 last_query_cost 统计 SQL 语句的查询成本总结参考文献 简介 本节将介绍磁盘IO是如何加载数据的&#xff0c;重点介绍一下数据库缓冲池的概念。主要包括&#xff1a; 什么是数据库缓冲池&#xff0c;它在…

云架构俭约之道七法则(The Frugal Architect)

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 文章目录 一、前言关于 Law 与 Rule 的区别 二、云架构俭约之道七法…

【算法刷题】每日打卡——动态规划(1)

背包问题 例题一 有 N件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整数…

深度学习python编译器的配置及法宝函数的作用

一、python编辑器的配置&#xff08;pycharm 和 jupyter&#xff09; &#xff08;1&#xff09;pycharm 在pycharm导入conda环境&#xff1a; 新建项目&#xff0c;更改编译器&#xff0c;选择已有的编译器 选择python.exe时会出现错误&#xff1a;找不到conda可执行文件 …

太空旅行:计算机技术的崭新航程

太空旅行&#xff1a;计算机技术的崭新航程 一、引言 自古以来&#xff0c;人类就对浩渺的宇宙充满了无尽的好奇和渴望。随着科技的飞速发展&#xff0c;太空旅行已经从科幻小说中的构想变为现实。在这个过程中&#xff0c;计算机技术起到了不可或缺的作用。从阿波罗时代的初…

EDT:On Efficient Transformer-Based Image Pre-training for Low-Level Vision

EDT&#xff1a;On Efficient Transformer-Based Image Pre-training for Low-Level Vision 论文地址&#xff1a;On Efficient Transformer-Based Image Pre-training for Low-Level Vision 代码地址&#xff1a;fenglinglwb/EDT: On Efficient Transformer-Based Image Pre…

知识付费小程序开发:技术实践示例

随着知识付费小程序的兴起&#xff0c;让我们一起来看一个简单的示例&#xff0c;使用Node.js和Express框架搭建一个基础的知识付费小程序后端。 首先&#xff0c;确保你已经安装了Node.js和npm。接下来&#xff0c;创建一个新的项目文件夹&#xff0c;然后通过以下步骤创建你…

LabVIEW实时建模检测癌细胞的异常

LabVIEW实时建模检测癌细胞的异常 癌症是全球健康的主要挑战之一&#xff0c;每年导致许多人死亡。世界卫生组织指出&#xff0c;不健康的生活方式和日益严重的环境污染是癌症发生的主要原因之一。癌症的发生通常与基因突变有关&#xff0c;这些突变导致细胞失去正常的增长和分…

excel手撕神经网络(只需高中数学基础)

神经网络最基础部分是由神经元组成&#xff0c;一个神经元相当于是一个一次函数&#xff0c;yaxb 即在已知x&#xff0c;和y情况下&#xff0c;怎么使用神经网络求解a和b 如下是使用excel求解的神经网络&#xff0c;可以方便理解神经网络运行原理 excel玩具神经网络下载地址 百…