哈工大软件构造阅读心得2-2: Java基础


本文参考:MIT Reading2哈工大学长汉化

枚举类型

有时候一种类型中会存在一个既小又有限的不可变的值的集合,例如:

  1. 一年中的月份: January, February, …, November, December

  2. 一周中的每一天:Monday, Tuesday, …, Saturday, Sunday

  3. 指南针中的方向:north, south, east, west

  4. 可以配出的颜色:black, gray, red, …

当不可变的值的集合满足“小”和“有限”这两个条件时,将这个集合中的所有值统一定义为一个命名常量就是有意义的。

在JAVA中,这样的命名常量就称为enumeration(枚举类型)
并且使用关键字enum来构造。

public enum Month {JANUARY, FEBRUARY, MARCH, APRIL,MAY, JUNE, JULY, AUGUST,SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER;}
public enum PenColor {BLACK, GRAY, RED, PINK, ORANGE,YELLOW, GREEN, CYAN, BLUE, MAGENTA;}

你可以在声明变量或函数的时候使用例如PenColor这样的枚举类型名:

PenColor drawingColor;

像引用一个被命名的静态常量一样来引用枚举类型的值:

drawingColor = PenColor.RED;

一个枚举型变量更加“类型安全”,因为它可以发现一些类型错误,如类型不匹配:

int month = TUESDAY;//如果month定义为整型值(TUESDAY也是一个整型值),那么这样写不会报错(但是从语义上看是错的,因为显然不能将“周四”赋值给一个“月份”,这可能不符合作者的本意)
Month month = DayOfWeek.TUESDAY;// 如果month被定义为枚举类型Month,那么这条语句将会触发静态错误 (static error)

或者拼写错误:

String color = "REd";// 不报错,拼写错误被忽略
PenColor drawingColor = PenColor.REd;// 当枚举类型的值被拼写错时,会触发静态错误

Java API 文档

Java API和Java API文档是什么

API:application programming interface,应用程序编程接口。
Java API:Java标准库提供的函数
Java
API文档:详细说明了Java中常用类和方法的功能,开发者可以通过查阅API文档,调用应用程序接口(API)来编程。

怎么使用Java API文档

Java中有很多类,每一个类又有很多方法和变量,通过查看Java
API文档能够知道这些类、方法和变量如何使用。Java官方为Java
SE提供了基于HTML的API文档。作为Java程序员应该熟悉如何使用API文档,如下:
http://docs.oracle.com/javase/8/docs/api/

类和接口中,接口是斜体文字,类是正常文字。

以List为例,点击左侧的List正常字体(List类)进入List类介绍:
右侧是List类的具体信息。

下拉有构造方法:

继续下拉有实例方法:所有的实例方法汇总,点击某个方法可以跳转到下面的所有方法详细介绍中该方法的介绍。

练习

读Java文档

阅读Java API文档来回答下列问题:

假设我们有一个 TreasureChest类。在我们运行如下代码之后:

Map\<String, TreasureChest\> treasures = new HashMap\<\>();treasures.put("beach", new TreasureChest(25));TreasureChest result = treasures.putIfAbsent("beach", new TreasureChest(75));

注:
default V putIfAbsent(K key, V value)
If the specified key is not already associated with a value (or is mapped to null) associates it with the given value and returns null, else returns the current value.

result变量的值是什么?

[x] 25 treasure

[ ] 75 treasure

[ ] another amount of treasure

[ ] null

Avast!

在运行下面这段代码之后:

Map\<String, String\> translations = new HashMap\<\>();translations.put("green", "verde");??? result = translations.replace("green", "verde", "ahdar");

result的值是什么?

注:
default boolean replace(K key, V oldValue, V newValue)
Replaces the entry for the specified key only if currently mapped to the specified value.

[ ] “green”

[ ] “verde”

[ ] “ahdar”

[ ] true

[ ] false

[ ] 1

[ ] null

[x] 以上没有正确答案(注:boolean)

2021-06-28相关推荐

  1. 项目实训2021.06.28

    项目实训题目是关键词泛化,被分到第三小组服务展现,要求分别实现两个接口. 接口一:输入语料.输出关键词. 接口二:输入关键词.输出同义词. 要求用Flask框架实现.第一天先了解了关键词泛化的含义,简 ...

  2. Tableau CA考试火山数据专题解析(2021.06.28考试真题)

    1.使用volcano Eruptions.xlsx数据,请创建一个直方图,并使用250米的数据对高度进行分割,有多少个高度范围只有一次喷发? 解题思路: Step1 先找到提到的变量:高度.火山爆发 ...

  3. 【离散数学】 SEU - 28 - 2021/06/11 - Lattice and Boolean Algebra

    Discrete Mathematical Structures (6th Edition) 2021/06/09 - Lattice and Boolean Algebra Lattice and ...

  4. Mculover666的博客文章导航(嵌入式宝藏站)(2021.06.17更新)

    一.MCU系列 1. 开发环境 [Keil MDK](一)Keil MDK 5.28 的下载.安装.破解 [Keil MDK](二)Keil MDK中芯片器件包的安装 [Keil MDK](三)Kei ...

  5. 2021.06.02税收和补贴问题

    2021.06.02税收和补贴问题 (题目来源:洛谷-P1023) 题目描述 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位 ...

  6. 前端面经笔记 2021.8.28

    前端面经笔记 2021.8.28 下面哪些执行结果为true() A.'foo' == new function(){ return String('foo'); }; B.'foo' == new ...

  7. Sysinternals Suite 2012.06.28软件简介

    Sysinternals Suite 2012.06.28软件简介 Sysinternals Suite是微软发布的一套非常强大的免费工具程序集.Sysinternals Suite一共包括将近70个 ...

  8. Vue 第一天学习 ---2018.06.28

    Vue  第一天学习 ---2018.06.28 1.引包 2.学会控制元素.显示数据,基本框架建立 <title>Document</title> <script sr ...

  9. 2021.12.28同花顺--智能--选股平台----技术指标--其它指标--逍遥买卖宝--指标B

    2021.12.28同花顺--智能--选股平台-- --技术指标--其它指标--逍遥买卖宝--指标B

  10. Spring Boot安装及使用(2021.10.28)

    Spring Boot安装及使用 2021.10.28 1.Spring Boot 简介 1.1 为何选择Spring? 1.2 Spring的功能 1.3 Spring项目的依赖包管理工具(Mave ...

最新文章

  1. thinkphp-比较标签-eq
  2. shell中的比较(if运算)
  3. python作品_智慧家居作品详细制作说明——3Done+Python+microbit创作
  4. graphviz python_工具推荐|我是如何使用Python脚本分析CPU使用情况的?
  5. pythotn基础篇——条件分支与循环--2
  6. html5化妆品网站源码,织梦响应式化妆美妆品类展示网站模板dedecms移动手机端HTML5自适应整站源码...
  7. 操作系统概念之定义和功能
  8. linux 主机管理平台,Linux虚拟主机管理系统directadmin使用中文教程
  9. Couldnot load Project The file couldn‘t be opened
  10. apache avro 简介
  11. 心态-《不抱怨的世界》书中的精髓:通过4个步骤,成为一个不抱怨、每天都快乐的人。
  12. 电源常识-差模干扰共模干扰
  13. 被全球过度炒作的Spotify敏捷部落制,连Spotify公司自己都不用
  14. Beyond Compare4
  15. 2021Q3展锐智能手机芯片全球市占率达10%
  16. Uber 新冠之殇:首席技术官Thuan Pham宣布离职,预计裁员5400人
  17. 队列应用之热土豆传递问题Python
  18. 【力扣刷题——字符串】附力扣链接、题目描述、解题方法及代码(344、541、剑指Offer05、151、剑指 Offer58、28、459)后续再补充
  19. Unity3D之Windows端隐藏任务栏图标并添加至托盘
  20. 算法-第四版-练习1.3.8解答

热门文章

  1. Fish 环境下如何安装 nvm
  2. Linux字符设备驱动内幕
  3. Unity3d 周分享(11期 2019.2.16)
  4. Deepin更换仿Mac主题(附Mac壁纸)
  5. 计算机网络 — 网络层
  6. Golang | Go 语言 编程练习 100题
  7. Linux下安装jdk1.7
  8. 网页中返回顶部代码及注释说明
  9. vs2019轻松完成python项目创建
  10. java程序实验总结_Java实验报告一及作业总结二