CH04:認識物件

Justin Lin
Justin LinTechnology / Community Evangelist at Free lancer
1
認識物件
學習目標
• 區分基本型態與類別型態
• 瞭解物件與參考的關係
• 從包裹器認識物件
• 以物件觀點看待陣列
• 認識字串的特性
• 知道如何查詢API文件
2
定義類別
3
• 新建一個物件、新建Clothes的實例
• 宣告參考名稱(Reference name)、參考變
數(Reference variable)或直接叫參考(
Reference)
• c1參考(refer)至新建物件
4
5
6
建構式(Constructor)
7
使用java.util.Scanner
8
使用java.math.BigDecimal
• 1.0 – 0.8的結果是?
• 以下程式片段會顯示什麼結果?
9
• 使用java.math.BigDecimal
10
11
物件指定與相等性
• =用於基本型態時,是將值複製給變數
• ==用於基本型態時,是比較變數儲存的值是
否相同
12
• 如果操作物件,=用在指定名稱參考至某個物
件,==用在比較兩個名稱是否參考同一物件
13
14
包裹基本型態
• Long、Integer、Double、Float、
Boolean、Byte等類別
15
自動裝箱、拆箱
16
17
• 從Java SE 9開始,基本型態包裹器的建構式
都標示為棄用(Deprecated)
18
• 自動裝箱與拆箱的功能是編譯器蜜糖(
Compiler sugar)
19
• 結果會是如何?
20
• Integer.java中valueOf()的實作內容
21
• IntegerCache.low預設值是-128,執行時期無
法更改,IntegerCache.high預設值是127
• 可以於啟動JVM時,使用系統屬性
java.lang.Integer.IntegerCache.high來指定
22
• 別使用==或!=來比較兩個物件實質內容值是
否相同(因為==與!=是比較物件參考)
• 要使用equals()
23
陣列基礎
• 記錄Java小考成績
24
• 循序地取出陣列中每個值
25
26
• 設定值給陣列中某個元素
27
• 二維陣列
28
操作陣列物件
• 以使用new關鍵字指定長度來建立陣列
29
30
31
• new陣列時一併指定初始值
• 代表建立陣列物件的類別定義在哪?答案是
由JVM動態產生
32
33
• 用new建立二維陣列
34
• 走訪二維陣列
35
36
37
38
• 如下建立陣列也是合法的:
39
40
41
42
陣列複製
• 並非陣列複製
• 另行建立新陣列
43
• 使用System.arraycopy()方法
44
• Arrays.copyOf()方法
45
• Java的陣列一旦建立,長度就固定了
46
47
48
49
50
字串基礎
• 字串是java.lang.String實例
51
• 已經有個char[]陣列
• 使用+運算來串接字串
52
• 字串剖析為基本型態
53
54
• 命令列引數
55
字串特性
• 字串常量與字串池。
• 不可變動(Immutable)字串。
56
字串常量與字串池
• 以下會顯示true或false?
• 底下這個程式碼呢?
57
• 字串常量(String literal)
58
• 比較字串實際字元內容是否相同,不要使用
==,要使用equals()
59
• 不可變動字串
• 使用程式顯示下圖的結果,你會怎麼寫呢?
60
61
62
• 無聊但認證會考的題目
63
原始檔編碼
• 你寫的.java原始碼檔案是什麼編碼?
64
65
66
67
68
69
70
Unicode與UTF
• 字元集是一組符號的集合
• 字元編碼是字元實際儲存時的位元組格式
71
• ISO/IEC與Unicode Consortium都曾經想統一
字元集
• ISO/IEC在1990年先公佈了第一套字元集的編
碼方式UCS-2,使用兩個位元組來編碼字元
• 字元集中每個字元會有個編號作為碼點(
Code point)
• UCS-2以兩個位元組作為一個碼元(Code
unit)
72
• 1991年ISO/IEC與Unicode合併,之後才發佈
了Unicode 1.0
• 越來越多的字元被納入Unicode字元集,超出
碼點U+0000至U+FFFF
• 1996年公佈了UTF16
– 沿用UCS-2兩個位元組的編碼部份
– 超出碼點U+0000至U+FFFF的字元,採用四個位
元組來編碼
73
• Unicode的另一編碼標準UTF-8,儲存字元時
使用的位元組數量視字元落在哪個Unicode範
圍而定
– ASCII編碼是其子集,儲存ASCII字元時只使用一
個位元組
– 其他附加符號的拉丁文、希臘文等,會使用兩個
位元組
– 中文部份,UTF-8採用三個位元組儲存,更罕見
的字元,可能會用到四到六個位元組
74
char與String
• JVM在執行時期,對於uxxxx採用的實作
是UTF-16 Big Endian
• char型態佔2個位元組,可儲存U+0000至
U+FFFF範圍的字元,也就是BMP(Basic
Multilingual Plane)
75
• 若字元不在BMP範圍內呢?
• 例如高音譜記號 的Unicode碼點為U+1D11E
• 必須使用字串儲存,以"uD834uDD1E"來
表示,稱為代理對(Surrogate pair)
• 字串的length()取得字串物件管理的char
數量
76
• 若字串中的字元,是在BMP範圍外,就不能
把length()傳回值當成是字串中的字元數
• 字串的length()傳回值是char的數量,也
就是表示字串使用的UTF-16碼元數量
77
• 取得字串中的字元數量(不是char的數量)
78
java.lang.Character
79
查詢Java API文件
80
81
82
83
84
85
86
87
1 of 87

Recommended

CH03:基礎語法 by
CH03:基礎語法CH03:基礎語法
CH03:基礎語法Justin Lin
530 views48 slides
CH1:Java平台概論 by
CH1:Java平台概論CH1:Java平台概論
CH1:Java平台概論Justin Lin
1.3K views41 slides
CH02:從JDK到IDE by
CH02:從JDK到IDECH02:從JDK到IDE
CH02:從JDK到IDEJustin Lin
482 views58 slides
Ch12 Spring 起步走 by
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
274 views31 slides
Spring Boot by
Spring BootSpring Boot
Spring BootJaran Flaath
543 views51 slides
INTRODUCTION TO JAVA APPLICATION by
INTRODUCTION TO JAVA APPLICATIONINTRODUCTION TO JAVA APPLICATION
INTRODUCTION TO JAVA APPLICATIONAjit Yadav
1.8K views24 slides

More Related Content

What's hot

Java Classes | Java Tutorial for Beginners | Java Classes and Objects | Java ... by
Java Classes | Java Tutorial for Beginners | Java Classes and Objects | Java ...Java Classes | Java Tutorial for Beginners | Java Classes and Objects | Java ...
Java Classes | Java Tutorial for Beginners | Java Classes and Objects | Java ...Edureka!
2.3K views42 slides
CH1. 簡介 Web 應用程式 by
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式Justin Lin
1.2K views55 slides
CH11:執行緒與並行API by
CH11:執行緒與並行APICH11:執行緒與並行API
CH11:執行緒與並行APIJustin Lin
320 views89 slides
Arrays in Java by
Arrays in Java Arrays in Java
Arrays in Java Hitesh-Java
310 views36 slides
Spring boot by
Spring bootSpring boot
Spring bootsdeeg
26.6K views25 slides
Maven by
MavenMaven
MavenМарія Русин
1.9K views49 slides

What's hot(20)

Java Classes | Java Tutorial for Beginners | Java Classes and Objects | Java ... by Edureka!
Java Classes | Java Tutorial for Beginners | Java Classes and Objects | Java ...Java Classes | Java Tutorial for Beginners | Java Classes and Objects | Java ...
Java Classes | Java Tutorial for Beginners | Java Classes and Objects | Java ...
Edureka!2.3K views
CH1. 簡介 Web 應用程式 by Justin Lin
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin1.2K views
CH11:執行緒與並行API by Justin Lin
CH11:執行緒與並行APICH11:執行緒與並行API
CH11:執行緒與並行API
Justin Lin320 views
Arrays in Java by Hitesh-Java
Arrays in Java Arrays in Java
Arrays in Java
Hitesh-Java310 views
Spring boot by sdeeg
Spring bootSpring boot
Spring boot
sdeeg26.6K views
Java SE 8 技術手冊第 1 章 - Java平台概論 by Justin Lin
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin11.6K views
Ch02 撰寫與設定 Servlet by Justin Lin
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin352 views
Taller breve de introduccion a Git by Mario IC
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
Mario IC1.3K views
Testcontainers - Geekout EE 2017 presentation by Richard North
Testcontainers - Geekout EE 2017 presentationTestcontainers - Geekout EE 2017 presentation
Testcontainers - Geekout EE 2017 presentation
Richard North2.4K views
CH12:Lambda by Justin Lin
CH12:LambdaCH12:Lambda
CH12:Lambda
Justin Lin379 views
ORM, JPA, & Hibernate Overview by Brett Meyer
ORM, JPA, & Hibernate OverviewORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate Overview
Brett Meyer71K views
Union FileSystem - A Building Blocks Of a Container by Knoldus Inc.
Union FileSystem - A Building Blocks Of a ContainerUnion FileSystem - A Building Blocks Of a Container
Union FileSystem - A Building Blocks Of a Container
Knoldus Inc.672 views
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito by shaunthomas999
An Introduction to JUnit 5 and how to use it with Spring boot tests and MockitoAn Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
An Introduction to JUnit 5 and how to use it with Spring boot tests and Mockito
shaunthomas999368 views
Ch03 請求與回應 by Justin Lin
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin236 views
Java SE 8 技術手冊第 5 章 - 物件封裝 by Justin Lin
Java SE 8 技術手冊第 5 章 - 物件封裝Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin3.4K views

Similar to CH04:認識物件

認識物件 by
認識物件認識物件
認識物件Justin Lin
1.1K views97 slides
Java SE 7 技術手冊投影片第 09 章 - Collection與Map by
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJava SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJustin Lin
2.5K views68 slides
Java SE 8 技術手冊第 4 章 - 認識物件 by
Java SE 8 技術手冊第 4 章 - 認識物件Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件Justin Lin
4.2K views91 slides
4. 使用物件 by
4. 使用物件4. 使用物件
4. 使用物件Justin Lin
174 views52 slides
Java SE 7 技術手冊投影片第 04 章 - 認識物件 by
Java SE 7 技術手冊投影片第 04 章 - 認識物件Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件Justin Lin
3.2K views91 slides
[圣思园][Java SE]Reflection by
[圣思园][Java SE]Reflection[圣思园][Java SE]Reflection
[圣思园][Java SE]ReflectionArBing Xie
545 views33 slides

Similar to CH04:認識物件(20)

認識物件 by Justin Lin
認識物件認識物件
認識物件
Justin Lin1.1K views
Java SE 7 技術手冊投影片第 09 章 - Collection與Map by Justin Lin
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJava SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin2.5K views
Java SE 8 技術手冊第 4 章 - 認識物件 by Justin Lin
Java SE 8 技術手冊第 4 章 - 認識物件Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin4.2K views
4. 使用物件 by Justin Lin
4. 使用物件4. 使用物件
4. 使用物件
Justin Lin174 views
Java SE 7 技術手冊投影片第 04 章 - 認識物件 by Justin Lin
Java SE 7 技術手冊投影片第 04 章 - 認識物件Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin3.2K views
[圣思园][Java SE]Reflection by ArBing Xie
[圣思园][Java SE]Reflection[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection
ArBing Xie545 views
hibernate by peterkong
hibernatehibernate
hibernate
peterkong928 views
CH09:Collection與Map by Justin Lin
CH09:Collection與MapCH09:Collection與Map
CH09:Collection與Map
Justin Lin288 views
從模組到類別 by Justin Lin
從模組到類別從模組到類別
從模組到類別
Justin Lin500 views
5. 從模組到類別 by Justin Lin
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
Justin Lin169 views
從模組到類別 by Justin Lin
從模組到類別從模組到類別
從模組到類別
Justin Lin1.7K views
Java SE 7 技術手冊投影片第 05 章 - 物件封裝 by Justin Lin
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin2.6K views
Chapter 4 models by Ekman Hsieh
Chapter 4 modelsChapter 4 models
Chapter 4 models
Ekman Hsieh152 views
Java相关基础知识 by yiditushe
Java相关基础知识Java相关基础知识
Java相关基础知识
yiditushe307 views
Java面试笔试题大汇总 by yiditushe
Java面试笔试题大汇总Java面试笔试题大汇总
Java面试笔试题大汇总
yiditushe411 views
資料永續與交換 by Justin Lin
資料永續與交換資料永續與交換
資料永續與交換
Justin Lin1.8K views
Ch07 使用 JSTL by Justin Lin
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin161 views
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTLServlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Servlet & JSP 教學手冊第二版 - 第 7 章:使用 JSTL
Justin Lin2.9K views
2, object oriented programming by ted-xu
2, object oriented programming2, object oriented programming
2, object oriented programming
ted-xu290 views

More from Justin Lin

Ch14 簡介 Spring Boot by
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring BootJustin Lin
872 views22 slides
Ch13 整合 Spring MVC/Security by
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityJustin Lin
280 views58 slides
Ch11 簡介 JavaMail by
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
157 views8 slides
Ch10 Web 容器安全管理 by
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Justin Lin
153 views30 slides
Ch09 整合資料庫 by
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
233 views92 slides
Ch08 自訂標籤 by
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤Justin Lin
133 views54 slides

More from Justin Lin(20)

Ch14 簡介 Spring Boot by Justin Lin
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin872 views
Ch13 整合 Spring MVC/Security by Justin Lin
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin280 views
Ch11 簡介 JavaMail by Justin Lin
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin157 views
Ch10 Web 容器安全管理 by Justin Lin
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin153 views
Ch09 整合資料庫 by Justin Lin
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin233 views
Ch08 自訂標籤 by Justin Lin
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin133 views
Ch06 使用 JSP by Justin Lin
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin250 views
Ch05 Servlet 進階 API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin204 views
Ch04 會話管理 by Justin Lin
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin238 views
14. 進階主題 by Justin Lin
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin406 views
13.並行、平行與非同步 by Justin Lin
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin237 views
12. 除錯、測試與效能 by Justin Lin
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin153 views
11. 常用內建模組 by Justin Lin
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin149 views
10. 資料永續與交換 by Justin Lin
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin156 views
9. 資料結構 by Justin Lin
9. 資料結構9. 資料結構
9. 資料結構
Justin Lin292 views
8. open() 與 io 模組 by Justin Lin
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin245 views
7. 例外處理 by Justin Lin
7. 例外處理7. 例外處理
7. 例外處理
Justin Lin115 views
6. 類別的繼承 by Justin Lin
6. 類別的繼承6. 類別的繼承
6. 類別的繼承
Justin Lin166 views
4. 流程語法與函式 by Justin Lin
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式
Justin Lin188 views
3.型態與運算子 by Justin Lin
3.型態與運算子3.型態與運算子
3.型態與運算子
Justin Lin199 views

CH04:認識物件