Submit Search
Upload
認識物件
•
1 like
•
1,060 views
Justin Lin
Follow
區分基本型態與類別型態 瞭解物件與參考的關係 從包裹器認識物件 以物件觀點看待陣列 認識字串的特性
Read less
Read more
Report
Share
Report
Share
1 of 97
Download now
Download to read offline
Recommended
進階主題
進階主題
Justin Lin
運用描述器 實作裝飾器 定義 meta 類別 使用相對匯入 泛型進階
反射與類別載入器
反射與類別載入器
Justin Lin
取得.class檔案資訊 動態生成物件與操作方法 認識模組與反射的權限設定 瞭解JDK9類別載入器階層 使用ClassLoader實例
物件封裝
物件封裝
Justin Lin
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
14. 進階主題
14. 進階主題
Justin Lin
運用描述器 實作裝飾器 定義 meta 類別 使用相對匯入 泛型進階
從模組到類別
從模組到類別
Justin Lin
深入模組管理 初識物件導向 學習定義類別 定義運算子
5. 從模組到類別
5. 從模組到類別
Justin Lin
深入模組管理 初識物件導向 學習定義類別 定義運算子
CH17:反射與類別載入器
CH17:反射與類別載入器
Justin Lin
取得.class檔案資訊 動態生成物件與操作方法 認識模組與反射的權限設定 瞭解JDK9類別載入器階層 使用ClassLoader實例
深入模組化
深入模組化
Justin Lin
認識模組的種類 處理模組依賴與封裝細節 使用模組API 建立JAR、JMOD與JIMAGE
Recommended
進階主題
進階主題
Justin Lin
運用描述器 實作裝飾器 定義 meta 類別 使用相對匯入 泛型進階
反射與類別載入器
反射與類別載入器
Justin Lin
取得.class檔案資訊 動態生成物件與操作方法 認識模組與反射的權限設定 瞭解JDK9類別載入器階層 使用ClassLoader實例
物件封裝
物件封裝
Justin Lin
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
14. 進階主題
14. 進階主題
Justin Lin
運用描述器 實作裝飾器 定義 meta 類別 使用相對匯入 泛型進階
從模組到類別
從模組到類別
Justin Lin
深入模組管理 初識物件導向 學習定義類別 定義運算子
5. 從模組到類別
5. 從模組到類別
Justin Lin
深入模組管理 初識物件導向 學習定義類別 定義運算子
CH17:反射與類別載入器
CH17:反射與類別載入器
Justin Lin
取得.class檔案資訊 動態生成物件與操作方法 認識模組與反射的權限設定 瞭解JDK9類別載入器階層 使用ClassLoader實例
深入模組化
深入模組化
Justin Lin
認識模組的種類 處理模組依賴與封裝細節 使用模組API 建立JAR、JMOD與JIMAGE
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
取得.class檔案資訊 動態生成物件與操作方法 瞭解JDK類別載入器階層 使用ClassLoader實例
[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection
ArBing Xie
9. 資料結構
9. 資料結構
Justin Lin
認識 hashable、iterable、orderable 對物件進行排序 認識群集架構 運用 collections 模組 運用 collections.abc 模組
CH16:整合資料庫
CH16:整合資料庫
Justin Lin
了解JDBC架構 使用JDBC API 瞭解交易與隔離層級 認識RowSet
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
Java SE 7 技術手冊
Python面向对象开发基础篇
Python面向对象开发基础篇
modou li
CH09:Collection與Map
CH09:Collection與Map
Justin Lin
認識Collection與Map架構 使用Collection與Map實作 對收集之物件進行排序 簡介Lambda表示式 簡介泛型語法
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
Java SE 7 技術手冊
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
資料永續與交換
資料永續與交換
Justin Lin
使用 pickle 與 shelve 認識 DB-API 2.0 使用 sqlite3 模組 處理 CSV、JSON、XML
CH04:認識物件
CH04:認識物件
Justin Lin
區分基本型態與類別型態 瞭解物件與參考的關係 從包裹器認識物件 以物件觀點看待陣列 認識字串的特性 知道如何查詢API文件
5. 建構式、原型與類別
5. 建構式、原型與類別
Justin Lin
認識建構式之作用 理解原型鏈機制 區別原型與類別典範 善用類別語法
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
Java SE 7 技術手冊
進階主題
進階主題
Justin Lin
《Python 3.5 技術手冊》第 14 章投影片
10. 資料永續與交換
10. 資料永續與交換
Justin Lin
使用 pickle 與 shelve 認識 DB-API 2.0 使用 sqlite3 模組 處理 CSV、JSON、XML
10, inner classes
10, inner classes
ted-xu
About Java inner class
11. DOM、事件與樣式
11. DOM、事件與樣式
Justin Lin
認識DOM操作 處理事件 掌握樣式 建立程式庫封裝細節
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
Java SE 7 技術手冊
《Python 3.5 技術手冊》第六章草稿
《Python 3.5 技術手冊》第六章草稿
Justin Lin
6.1 何謂繼承? 6.1.1 繼承共同行為 6.1.2 鴨子定型 6.1.3 重新定義方法 6.1.4 定義抽象方法 6.2 繼承語法細節 6.2.1 初識object與super() 6.2.2 Rich comparison方法 定義__eq__() 14 定義__gt__()、__ge__() 使用functools.total_ordering 6.2.3 多重繼承 6.2.4 建立ABC 6.2.5 探討super() 6.3 文件與套件資源 6.3.1 DocString 6.3.2 查詢官方文件 6.3.3 PyPI與pip 6.4 重點複習 34 課後練習
從模組到類別
從模組到類別
Justin Lin
《Python 3.5 技術手冊》第 5 章投影片
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
區分基本型態與類別型態 瞭解物件與參考的關係 從包裹器認識物件 以物件觀點看待陣列 認識字串的特性
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
Java SE 7 技術手冊
More Related Content
What's hot
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
取得.class檔案資訊 動態生成物件與操作方法 瞭解JDK類別載入器階層 使用ClassLoader實例
[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection
ArBing Xie
9. 資料結構
9. 資料結構
Justin Lin
認識 hashable、iterable、orderable 對物件進行排序 認識群集架構 運用 collections 模組 運用 collections.abc 模組
CH16:整合資料庫
CH16:整合資料庫
Justin Lin
了解JDBC架構 使用JDBC API 瞭解交易與隔離層級 認識RowSet
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
Java SE 7 技術手冊
Python面向对象开发基础篇
Python面向对象开发基础篇
modou li
CH09:Collection與Map
CH09:Collection與Map
Justin Lin
認識Collection與Map架構 使用Collection與Map實作 對收集之物件進行排序 簡介Lambda表示式 簡介泛型語法
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
Java SE 7 技術手冊
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
資料永續與交換
資料永續與交換
Justin Lin
使用 pickle 與 shelve 認識 DB-API 2.0 使用 sqlite3 模組 處理 CSV、JSON、XML
CH04:認識物件
CH04:認識物件
Justin Lin
區分基本型態與類別型態 瞭解物件與參考的關係 從包裹器認識物件 以物件觀點看待陣列 認識字串的特性 知道如何查詢API文件
5. 建構式、原型與類別
5. 建構式、原型與類別
Justin Lin
認識建構式之作用 理解原型鏈機制 區別原型與類別典範 善用類別語法
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
Java SE 7 技術手冊
進階主題
進階主題
Justin Lin
《Python 3.5 技術手冊》第 14 章投影片
10. 資料永續與交換
10. 資料永續與交換
Justin Lin
使用 pickle 與 shelve 認識 DB-API 2.0 使用 sqlite3 模組 處理 CSV、JSON、XML
10, inner classes
10, inner classes
ted-xu
About Java inner class
11. DOM、事件與樣式
11. DOM、事件與樣式
Justin Lin
認識DOM操作 處理事件 掌握樣式 建立程式庫封裝細節
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
Java SE 7 技術手冊
《Python 3.5 技術手冊》第六章草稿
《Python 3.5 技術手冊》第六章草稿
Justin Lin
6.1 何謂繼承? 6.1.1 繼承共同行為 6.1.2 鴨子定型 6.1.3 重新定義方法 6.1.4 定義抽象方法 6.2 繼承語法細節 6.2.1 初識object與super() 6.2.2 Rich comparison方法 定義__eq__() 14 定義__gt__()、__ge__() 使用functools.total_ordering 6.2.3 多重繼承 6.2.4 建立ABC 6.2.5 探討super() 6.3 文件與套件資源 6.3.1 DocString 6.3.2 查詢官方文件 6.3.3 PyPI與pip 6.4 重點複習 34 課後練習
從模組到類別
從模組到類別
Justin Lin
《Python 3.5 技術手冊》第 5 章投影片
What's hot
(20)
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection
9. 資料結構
9. 資料結構
CH16:整合資料庫
CH16:整合資料庫
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Python面向对象开发基础篇
Python面向对象开发基础篇
CH09:Collection與Map
CH09:Collection與Map
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
資料永續與交換
資料永續與交換
CH04:認識物件
CH04:認識物件
5. 建構式、原型與類別
5. 建構式、原型與類別
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
進階主題
進階主題
10. 資料永續與交換
10. 資料永續與交換
10, inner classes
10, inner classes
11. DOM、事件與樣式
11. DOM、事件與樣式
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
《Python 3.5 技術手冊》第六章草稿
《Python 3.5 技術手冊》第六章草稿
從模組到類別
從模組到類別
Similar to 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
區分基本型態與類別型態 瞭解物件與參考的關係 從包裹器認識物件 以物件觀點看待陣列 認識字串的特性
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
Java SE 7 技術手冊
2, object oriented programming
2, object oriented programming
ted-xu
What is OOP? a basic intro
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Justin Lin
Java SE 7 技術手冊
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
了解何謂 JSTL 使用 JSTL 核心標籤庫 使用 JSTL 格式標籤庫 使用 JSTL XML 標籤庫 使用 JSTL 函式標籤庫
CH05:物件封裝
CH05:物件封裝
Justin Lin
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
4. 使用物件
4. 使用物件
Justin Lin
掌握this參考 運用物件實字 認識物件協定 使用符號協定
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Justin Lin
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
Java SE 7 技術手冊
CH18:自訂泛型、列舉與標註
CH18:自訂泛型、列舉與標註
Justin Lin
進階自訂泛型 進階自訂列舉 使用標準標註 自訂與讀取標註
資訊組織第四章
資訊組織第四章
maolins
資訊組織第四章
資訊組織第四章
maolins
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
瞭解與設定PATH 瞭解與指定CLASSPATH 瞭解與指定SOURCEPATH 使用package與import管理類別 初步認識JDK與IDE的對應
Javascript进阶编程
Javascript进阶编程
iflytek
讲述javascript面向对象编程的一些要点
[圣思园][Java SE]Jdk5
[圣思园][Java SE]Jdk5
ArBing Xie
Similar to 認識物件
(16)
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
2, object oriented programming
2, object oriented programming
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Ch07 使用 JSTL
Ch07 使用 JSTL
CH05:物件封裝
CH05:物件封裝
4. 使用物件
4. 使用物件
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 06 章 - 繼承與多型
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
CH18:自訂泛型、列舉與標註
CH18:自訂泛型、列舉與標註
資訊組織第四章
資訊組織第四章
資訊組織第四章
資訊組織第四章
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Javascript进阶编程
Javascript进阶编程
[圣思园][Java SE]Jdk5
[圣思园][Java SE]Jdk5
More from Justin Lin
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
認識 Spring Boot 認識 Spring Tool Suite 遷移微網誌至 Spring Boot
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
區別程式庫與框架 逐步善用 Spring MVC 簡介 Thymeleaf 模版 使用 Spring Security
Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
使用 Gradle 結合 Gradle 與 IDE 認識相依注入 使用 Spring 核心
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
寄送純文字郵件 寄送 HTML 郵件 寄送附檔郵件
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
了解 Java EE 安全概念與名詞 使用容器基本驗證與表單驗 使用 HTTPS 保密資料傳輸
Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
了解 JDBC 架構 使用基本的 JDBC 透過 JNDI 取得DataSource 在 Web 應用程式整合資料庫
Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
使用 Tag File 自訂標籤 使用 Simple Tag 自訂標籤 使用 Tag 自訂標籤
Ch06 使用 JSP
Ch06 使用 JSP
Justin Lin
了解 JSP 生命週期 使用 JSP 語法元素 使用 JSP 標準標籤 使用運算式語言(EL) 自訂 EL 函式
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
了解 Servlet 生命週期 使用 ServletConfig 與ServletContext 使用 PushBuilder 各種傾聽器的使用 繼承 HttpFilter 實作過濾器
Ch04 會話管理
Ch04 會話管理
Justin Lin
了解會話管理基本原理 使用 Cookie 類別 使用 HttpSession 會話管理 了解容器會話管理原理
Ch03 請求與回應
Ch03 請求與回應
Justin Lin
取得請求參數與標頭 處理中文字元請求與回應 設定與取得請求範圍屬性 使用轉發、包含、重新導向
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
開發環境準備與使用 了解 Web 應用程式架構 Servlet 撰寫與部署設定 了解 URI 模式對應 使用 web-fragement.xml
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
認識 HTTP 基本特性 了解何為 URI 編碼 認識 Web 容器角色 了解 Servlet 與 JSP 的關係 認識 MVC/Model 2
13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin
認識並行、平行與非同步 使用 threading 模組 使用 multiprocessing 模組 使用 concurrent.futures模組 運用 async、await 與 asyncio
12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
使用 pdb 模組除錯 對程式進行單元測試 使用 timeit 評測程式片段 使用 cProfile(profile)察看評測數據
11. 常用內建模組
11. 常用內建模組
Justin Lin
處理日期與時間 認識日誌的使用 運用規則表示式 管理檔案與目錄 URL 處理
8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
使用 open()函式 使用 stdin、stdout、stderr 認識檔案描述器 認識 io 模組
7. 例外處理
7. 例外處理
Justin Lin
使用 try、except 處理例外 認識例外繼承架構 認識 raise 使用時機 運用 finally 清除資源 使用 with as 管理資源
6. 類別的繼承
6. 類別的繼承
Justin Lin
瞭解繼承目的 認識鴨子定型 重新定義方法 認識 object 建立、尋找文件資源 泛型入門
4. 流程語法與函式
4. 流程語法與函式
Justin Lin
認識基本流程語法 使用 for Comprehension 認識函式與變數範圍 運用一級函式特性 使用 yield 建立產生器 初探型態提示
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Ch12 Spring 起步走
Ch12 Spring 起步走
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Ch09 整合資料庫
Ch09 整合資料庫
Ch08 自訂標籤
Ch08 自訂標籤
Ch06 使用 JSP
Ch06 使用 JSP
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch04 會話管理
Ch04 會話管理
Ch03 請求與回應
Ch03 請求與回應
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
13.並行、平行與非同步
13.並行、平行與非同步
12. 除錯、測試與效能
12. 除錯、測試與效能
11. 常用內建模組
11. 常用內建模組
8. open() 與 io 模組
8. open() 與 io 模組
7. 例外處理
7. 例外處理
6. 類別的繼承
6. 類別的繼承
4. 流程語法與函式
4. 流程語法與函式
認識物件
1.
1
2.
認識物件 學習目標 • 區分基本型態與類別型態 • 瞭解物件與參考的關係 •
從包裹器認識物件 • 以物件觀點看待陣列 • 認識字串的特性 2
3.
定義類別 3
4.
定義類別 4
5.
定義類別 5
6.
定義類別 • 可以觀察這個範例中,為個別物件指定資料 成員值的程式碼,你會發現是類似的 .. •
如果想在建立物件時,一併進行某個初始流 程,像是指定資料成員值,則可以定義建構 式(Constructor),建構式是與類別名稱同 名的方法(Method) 6
7.
定義類別 7
8.
使用標準類別 • 使用java.util.Scanner 8
9.
使用標準類別 • 1.0 –
0.8的結果是?答案不是0.2,而是 0.19999999999999996! • Java(包括其它程式語言)遵合IEEE 754浮 點數演算(Floating-point arithmetic)規範 9
10.
使用標準類別 • 使用java.math.BigDecimal 10
11.
使用標準類別 • 呼叫equals()比較兩個BigDecimal實質 上是否相同 11
12.
物件指定與相等性 • 在Java中有兩大型態系統,基本型態與類別 型態,這很令人困擾… • 若不討論底層記憶體實際運作,初學者就必 須區分=與==運算用於基本型態與類別型態 的不同 12
13.
物件指定與相等性 • 當=用於基本型態時,是將值複製給變數 • ==用於基本型態時,是比較兩個變數儲存的 值是否相同 13
14.
物件指定與相等性 • 如果你在操作物件,=是用在指定參考名稱參 考某個物件 • ==是比較兩個參考名稱是否參考同一物件 •
白話來說,=是用在將某個名牌綁到某個物件, 而==是用在比較兩個名牌是否綁到同一物件 14
15.
物件指定與相等性 15
16.
物件指定與相等性 16
17.
物件指定與相等性 • ==用在物件型態,是比較兩個名稱是否參考 同一物件,而!=正好相反,是比較兩個名稱 是否沒參考同一物件 • 實際上,equals()可以自行定義如何比較 兩物件的內含值 17
18.
包裹基本型態 • 使用基本型態目的在於效率 • 然而更多時候,會使用類別建立實例,因為 物件本身可以攜帶更多資訊 •
如果要讓基本型態像物件一樣操作,可以使 用Long、Integer、Double、Float、 Boolean、Byte等包裹器(Wrapper)類別 來包裹(Wrap)基本型態 18
19.
包裹基本型態 19
20.
自動裝箱、拆箱 • 從J2SE 5.0之後提供了自動裝箱(Auto
boxing) 功能,可以如下包裹基本型態: • 若使用自動裝箱功能來改寫一下 IntegerDemo中的程式碼: 20
21.
自動裝箱、拆箱 • 自動裝箱運用的方法還可以如下: • 也可以使用更一般化的Number類別來自動裝 箱,例如: 21
22.
自動裝箱、拆箱 • J2SE 5.0後可以自動裝箱,也可以自動拆箱 (Auto
unboxing) • 在運算時也可以進行自動裝箱與拆箱: 22
23.
自動裝箱、拆箱 • 再來看一個例子: 23
24.
• 使用new建立基本型態包裹器是不需要也不 建議的 • 從Java
SE 9開始,基本型態包裹器的建構式 都被標示為棄用(Deprecated)了 • 試圖使用new建構基本型態包裹器的話會發 生編譯警訊 24
25.
• 在使用javac時加上- Xlint:deprecation,可以看到更清楚的 警訊細節 25
26.
裝箱的內幕 • 自動裝箱與拆箱的功能事實上是編譯器蜜糖 (Compiler sugar) 26
27.
裝箱的內幕 • 例如下面的程式是可以通過編譯的: NullPointerException 27
28.
裝箱的內幕 • 如果你如下撰寫,結果會是如何? 28
29.
裝箱的內幕 • 如果你如下撰寫,結果會是如何? 29
30.
裝箱的內幕 • 察查JDK資料夾src.zip中的java/lang資料夾中的 Integer.java,你會看到valueOf()的實作內容: • IntegerCache.low預設值是-128, IntegerCache.high預設值是127 30
31.
裝箱的內幕 • IntegerCache.low預設值是-128,執行時 期無法更改 • IntegerCache.high預設值是127,可以 於啟動JVM時,使用系統屬性 java.lang.Integer.IntegerCache.h igh來指定 31
32.
裝箱的內幕 • 別使用==或!=來比較兩個物件實質內容值是 否相同(因為==與!=是比較物件參考),而 要使用equals() 32
33.
陣列基礎 • 若要用程式記錄Java小考成績,若有10名學 生 … 33
34.
陣列基礎 • 索引由0開始 • 如果存取超出索引範圍,就會拋出 ArrayIndexOutOfBoundsException 34
35.
陣列基礎 • 如果需求是循序地從頭至尾取出陣列值,從 JDK5之後,有了更方便的增強式for迴圈 (Enhanced for
loop)語法 35
36.
陣列基礎 • 如果要設定值給陣列中某個元素,也是透過 索引: 36
37.
陣列基礎 • 宣告二維陣列 37
38.
陣列基礎 • 可以用增強式for迴圈來改寫會比較簡潔: 38
39.
操作陣列物件 • 可以使用new關鍵字指定長度來建立陣列 39
40.
操作陣列物件 • 可以使用java.util.Arrays的fill()方 法來設定新建陣列的元素值 40
41.
操作陣列物件 • 想在new陣列時一併指定初始值 41
42.
操作陣列物件 • 物件是根據類別而建立的實例,代表建立陣 列物件的類別定義在哪?答案是由JVM動態 產生。 42
43.
操作陣列物件 • 看看以下這個片段會顯示什麼? 43
44.
操作陣列物件 • 如果想用new建立二維陣列: 44
45.
操作陣列物件 • 應該可以知道為何要如下走訪二維陣列了: 45
46.
操作陣列物件 • 那麼這段增強式for語法是怎麼回事呢? 46
47.
操作陣列物件 • 如果使用new配置二維陣列後想要一併指定 初值: 47
48.
操作陣列物件 • 也可以建立不規則陣列: 48
49.
操作陣列物件 • 範例中new int[2][]僅提供第一個[]數值, 這表示arr參考的物件會有兩個索引,但暫 時參考至null 49
50.
操作陣列物件 • 接著分別讓arr[0]參考至長度為5,而元素 值為1、2、3、4、5的陣列,以及arr[0]參 考至長度為3,而元素值為1、2、3的陣列 50
51.
操作陣列物件 • 這麼建立陣列也是合法的: 51
52.
操作陣列物件 • 類別型態建立的陣列: • 上面這個片段建立了幾個Integer物件呢? 52
53.
操作陣列物件 • 每個索引其實都是Integer型態,可以讓你 參考至Integer實例 53
54.
操作陣列物件 • 上面這個範例也可以結合自動裝箱語法 54
55.
操作陣列物件 • 如果事先知道Integer陣列每個元素要放什 麼,可以如下: • 如果是JDK5以上,不結合自動裝箱來簡化程 式撰寫,就有點可惜了 55
56.
操作陣列物件 • 以下Integer二維陣列,建立了幾個 Integer實例? 56
57.
陣列複製 • 以下這個並非陣列複製: • 要作陣列複製,基本作法是另行建立新陣列 57
58.
陣列複製 • 可以使用System.arraycopy()方法,這 個方法會使用原生方式複製每個索引元素, 比自行使用迴圈來得快: 58
59.
陣列複製 • 如果使用JDK6以上,還有個更方便的 Arrays.copyOf()方法,你不用另行建立 新陣列,Arrays.copyOf()會幫你建立 59
60.
陣列複製 • 事先建立的陣列長度不夠怎麼辦?那就只好 建立新陣列,將原陣列內容複製至新陣列 60
61.
陣列複製 • 類別型態宣告的陣列則要注意參考的行為 61
62.
陣列複製 62
63.
陣列複製 • 實際上迴圈中僅將c1每個索引處所參考的物 件,也給c2每個索引來參考,並沒有實際複 製出Clothes物件 • 術語上來說,這叫作複製參考,或稱這個行 為是淺層複製(Shallow
copy) • 無論是System.arraycopy()或 Arrays.copyOf(),用在類別型態宣告的 陣列時,都是執行淺層複製 63
64.
陣列複製 64
65.
陣列複製 • 這個範例執行所謂深層複製(Deep copy) 65
66.
字串基礎 • 在Java中,字串是java.lang.String實例, 用來包裹字元陣列 • 可以用""包括一串字元來建立字串 66
67.
字串基礎 • 已經有一個char[]陣列,也可以使用new來 建構String實例 • 也可以使用String的toCharArray()方法, 以將字串以char[]陣列傳回: 67
68.
字串基礎 • 可以使用+運算來串接字串 68
69.
字串基礎 • 要將輸字串轉換為整數、浮點數等基本型態 • 如果無法剖析傳入的String實例,則會拋出 NumberFormatException 69
70.
字串基礎 70
71.
字串基礎 • 程式進入點main()中的String[] args •
命令列引數(Command line arguments) 71
72.
字串特性 • Java字串有一些必須注意的特性: – 字串常量與字串池 –
不可變動(Immutable)字串 72
73.
字串特性 • 以下會顯示true或false? • 底下這個程式碼呢? 73
74.
字串特性 • 以""包括的字串,只要內容相同(序列、大 小寫相同),無論在程式碼中出現幾次, JVM都只會建立一個String實例,並在字 串池(String pool)中維護 74
75.
字串特性 • 用""寫下的字串稱為字串常量(String literal),既然你用"Justin"寫死了字串內 容,基於節省記憶體考量,自然就不用為這 些字串常量分別建立String實例 75
76.
字串特性 76
77.
字串特性 • 如果想比較字串實際字元內容是否相同,不 要使用==,要使用equals() 77
78.
字串特性 • 字串物件一旦建立,就無法更動物件內容 • 那麼使用+串接字串是怎麼達到的? 78
79.
字串特性 • 使用+串接字串會產生新的String實例 • 這並不是告訴你,不要使用+串接字串 •
只是在告訴你,不要將+用在重複性的串接場 合,像是迴圈中或遞迴時使用+串接字串 79
80.
字串特性 • 使用程式顯示下圖的結果,你會怎麼寫呢? 80
81.
字串特性 81
82.
字串特性 82
83.
字串特性 • 請問以下會顯示true或false? 83
84.
字串編碼 • 你寫的.java原始碼檔案是什麼編碼? • 明明你的Windows純文字編輯器是Big5編碼, 為什麼會寫下的字串在JVM中會是Unicode? 84
85.
字串編碼 • 如果你的作業系統預設編碼是Big5,而你的 文字編輯器是使用Big5編碼 85
86.
字串編碼 • 產生的.class檔案,使用反組譯工具還原的程 式碼中,會看到以下的內容: • JVM在載入.class之後,就是讀取Unicode編碼 並產生對應的字串物件 86
87.
字串編碼 • 使用javac指令沒有指定-encoding選項時, 會使用作業系統預設編碼 • 如果你的文字編譯器是使用UTF-8編碼,那 麼編譯時就要指定-encoding為UTF-8 87
88.
查詢Java API文件 88
89.
查詢Java API文件 89
90.
查詢Java API文件 90
91.
查詢Java API文件 91
92.
查詢Java API文件 92
93.
查詢Java API文件 93
94.
查詢Java API文件 94
95.
查詢Java API文件 95
96.
查詢Java API文件 96
97.
查詢Java API文件 97
Download now