2021-06-28
哈工大软件构造阅读心得2-2: Java基础
本文参考:MIT Reading2哈工大学长汉化
枚举类型
有时候一种类型中会存在一个既小又有限的不可变的值的集合,例如:
一年中的月份: January, February, …, November, December
一周中的每一天:Monday, Tuesday, …, Saturday, Sunday
指南针中的方向:north, south, east, west
可以配出的颜色: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相关推荐
- 项目实训2021.06.28
项目实训题目是关键词泛化,被分到第三小组服务展现,要求分别实现两个接口. 接口一:输入语料.输出关键词. 接口二:输入关键词.输出同义词. 要求用Flask框架实现.第一天先了解了关键词泛化的含义,简 ...
- Tableau CA考试火山数据专题解析(2021.06.28考试真题)
1.使用volcano Eruptions.xlsx数据,请创建一个直方图,并使用250米的数据对高度进行分割,有多少个高度范围只有一次喷发? 解题思路: Step1 先找到提到的变量:高度.火山爆发 ...
- 【离散数学】 SEU - 28 - 2021/06/11 - Lattice and Boolean Algebra
Discrete Mathematical Structures (6th Edition) 2021/06/09 - Lattice and Boolean Algebra Lattice and ...
- Mculover666的博客文章导航(嵌入式宝藏站)(2021.06.17更新)
一.MCU系列 1. 开发环境 [Keil MDK](一)Keil MDK 5.28 的下载.安装.破解 [Keil MDK](二)Keil MDK中芯片器件包的安装 [Keil MDK](三)Kei ...
- 2021.06.02税收和补贴问题
2021.06.02税收和补贴问题 (题目来源:洛谷-P1023) 题目描述 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位 ...
- 前端面经笔记 2021.8.28
前端面经笔记 2021.8.28 下面哪些执行结果为true() A.'foo' == new function(){ return String('foo'); }; B.'foo' == new ...
- Sysinternals Suite 2012.06.28软件简介
Sysinternals Suite 2012.06.28软件简介 Sysinternals Suite是微软发布的一套非常强大的免费工具程序集.Sysinternals Suite一共包括将近70个 ...
- Vue 第一天学习 ---2018.06.28
Vue 第一天学习 ---2018.06.28 1.引包 2.学会控制元素.显示数据,基本框架建立 <title>Document</title> <script sr ...
- 2021.12.28同花顺--智能--选股平台----技术指标--其它指标--逍遥买卖宝--指标B
2021.12.28同花顺--智能--选股平台-- --技术指标--其它指标--逍遥买卖宝--指标B
- Spring Boot安装及使用(2021.10.28)
Spring Boot安装及使用 2021.10.28 1.Spring Boot 简介 1.1 为何选择Spring? 1.2 Spring的功能 1.3 Spring项目的依赖包管理工具(Mave ...
最新文章
- thinkphp-比较标签-eq
- shell中的比较(if运算)
- python作品_智慧家居作品详细制作说明——3Done+Python+microbit创作
- graphviz python_工具推荐|我是如何使用Python脚本分析CPU使用情况的?
- pythotn基础篇——条件分支与循环--2
- html5化妆品网站源码,织梦响应式化妆美妆品类展示网站模板dedecms移动手机端HTML5自适应整站源码...
- 操作系统概念之定义和功能
- linux 主机管理平台,Linux虚拟主机管理系统directadmin使用中文教程
- Couldnot load Project The file couldn‘t be opened
- apache avro 简介
- 心态-《不抱怨的世界》书中的精髓:通过4个步骤,成为一个不抱怨、每天都快乐的人。
- 电源常识-差模干扰共模干扰
- 被全球过度炒作的Spotify敏捷部落制,连Spotify公司自己都不用
- Beyond Compare4
- 2021Q3展锐智能手机芯片全球市占率达10%
- Uber 新冠之殇:首席技术官Thuan Pham宣布离职,预计裁员5400人
- 队列应用之热土豆传递问题Python
- 【力扣刷题——字符串】附力扣链接、题目描述、解题方法及代码(344、541、剑指Offer05、151、剑指 Offer58、28、459)后续再补充
- Unity3D之Windows端隐藏任务栏图标并添加至托盘
- 算法-第四版-练习1.3.8解答