課程介紹
總學習目標
自從Oracle接手Java的發展之後,Java加入了許多新功能,跟上最新的程式語言與新型態的發布、維護架構。Java 是多平台、物件導向且以網路為中心的語言。Java 程式安全可靠,不論是各種軟體,乃至大數據應用程式和伺服器端技術,都能用 Java 編寫出來。科技巨頭正在要求軟體工程師多加使用AI寫程式工具,所以使用AI寫程式,也要看懂AI輔助工具產生的程式,並有修改程式的能力。
                                                                      ``Java is C++ without the guns, knives, and clubs.'' -- James Gosling
 
Java程式設計/授課教師
姓名:翁旭谷 / 健行科技大學 電子工程學系 副教授
學歷:國防大學中正理工學院 電子工程博士
電子郵件:skw@uch.edu.tw
電話:03-4581196 # 5131
Office hour:星期二: 13:00-16:00 /星期四: 18:00-20:00 /星期五: 15:00-17:00
線上連線LINE 即時通訊
 
學生11人(產學僑生四技專班)
  • 開課班級為電子工程系產學僑生四技專班,學生來自印尼、越南及馬來西亞,人數共11人。
  • 學生於高中時來台灣就讀於桃園市世紀綠能工商高級中學,之後就讀健行科技大學電子工程學系。
  • 學生目前一個星期有四天實習,二天回學校上課。
  • 三個實習公司為鴻佰科技、恒陽科技及實創得精密。
  • 工作內容為產線生產維護,品管及產品檢測等。

 

學號

姓名

1

P11211002

張孔偉

2

P11211003

朱寶清

3

P11211004

李珍美

4

P11211005

楊沈奕發

5

P11211008

廖維仁

6

P11211010

文其龍飛

7

P11211011

黃冠競

8

P11211012

楊小明

9

P11211013

彭德峰

10

P11211014

鄧素思

11

P11211016

殷文海

 
教科書:

1.入門首選 Java 程式設計- 最新版(第2版台科大圖書

2. Java物件導向程式設計:理論與實作(第2版)新文京開發

3. Java ™ Programming, 9th ed. Joyce Farrell

4. Java tutorial:  https://www.tutorialspoint.com/java/index.htm,

                           https://www.w3schools.com/java/default.asp 

教學進度:

了解Java語言的各項功能與特徵以及各項重要的基本Java應用程式介面(API),進而具備Java語言的程式設計能力,從而可在線上Java平台進行應用程式設計。

目前學生可以使用AI輔助工具,可以產生所要的程式,但學生還是要學習以下具體的細項目標:

  • 瞭解Java語言提供的語法建構以及其語意含意。
  • 如何善用工具,開發 Java應用程式。
  • 熟知從事Java程式設計時,最常使用的各項核心套件與類別。
  • 熟悉瞭解物件導向程式設計、善用各種Java預建的資料料結構

成績考評標準:

30% 講述 (非同步影音教材閱讀、同步線上課程出席、實體課程出席)

15% 單元測驗

20% 作業(個人與分組作業報告)

10% 參與討論版討論

10% 期中考

15% 期末考 

0% 問卷

0% 其它: Others

 

教學法:

講授教學法:幾乎每週運用提供線上同步教學及線上非同步教學,同時學生也可至教室參加實體教學,敘述講演方式,傳遞教材知識和方法,提供相關教材或講義。

演練教學法:透過設備或教材,進行練習、表現和實作,親自解說示範的技能或程序。

 

各單元學習目標

1:

課程主題課程介紹

課程內容:   

1 Java語言基礎

  .Java 語法源於C++ 語言,同時使用了垃圾回收機制(Garbage Collection)。

    .Java 的程式碼不遷就任何一個硬體平台,只要一次編譯,每個平台都可執行。

  .搭載Java的虛擬機器(Java Virtual Machine, JVM)執行環境,即可執行編譯後的Java Bytecode。 

  .Java 程式是由類別與物件的架構所組成。

    .Java 對例外捕捉的構想是讓程式設計師使用完全不同的方式描述例外捕捉。

  .多執行緒是在每一個行程(Process)中包含多個執行緒(Thread)。

2 物件導向程式設計

 .物件是一種抽象概念或具體的東西,其中包括了「屬性」(Attribute)與相關的「方法」(Methods)。

 .類別與物件之間關係可以將「類別」看成是「物件」的模型、模組;

 .「物件」則是「類別」實際製作後的成品。

 .類別是一個藍圖,物件是藍圖所產生的實體(instance)。

3 Java程式開發環境

 .Java 的開發工具分成「JDK」及「IDE」二種。

  .Java Development Kit, JDK 是一種「簡易、陽春」的程式開發工具,僅僅提供編譯(Compile)、執行(Run)及除錯 Debug)功能。

  . Integrated Development Environment, IDE:是整合編輯、編譯、執行、 測試及除錯功能 

4 Java程式的基本架構

  . main() Java 中一個相當特殊函數,又稱為Java 的「主函數」

 .任何Java 程式開始執行時,不管main() 函數是在程式碼中任何位置,一定會從main() 函數開始執行。

指定閱讀課程投影片.

教學活動與作業 : 1. 課程相關事項說明 2. 未來課程內容簡介

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 3 hours

 

2:

課程主題 :  Java 資料處理

課程內容:  

1 Java基本資料型態

 .變數在Java的正確變數宣告方式是由資料型態加上變數名稱與分號所構成。

 .常數是一個固定的值,在程式執行的整個過程中,不能被改變的數值。 

2 資料型態的運算

 .基本資料型態是 booleancharbyteshortintlongfloatdouble8種。 

格式化輸出功能

 .JavaSystem.out.printf()函數會將指定的文字輸出到標準輸出設備(螢幕)。

 .Java 的標準輸入可用System.in函數,屬於InputStream串流類別,可配合read(byte[])方法取出輸入內容。 資料型態轉換

   .Java編譯器會自動將變數儲存的資料,自動轉換成相同的資料型態再作運算。

 .Java 通常會依照型態數值範圍大者作為優先轉換的對象。

指定閱讀課程投影片.

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範 3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours

 

3:

課程主題 :  運算子與運算式

課程內容:  

1 Java運算式

 .一元運算式、二元運算式、三元運算式

2 指定、算術、關係、邏輯運算子

 .在指定運算子(=) 右側可以是常數、變數或運算式,最終都將會值指定給左側的變數

 .算術運算子包含了數學運算中的四則運算,以及遞增、遞減、正/ 負數、餘數等運算子。

 .關係運算子是比較兩數值間的大小關係,當用關係運算子時,所運算結果是成立或者不成立兩種。

 .邏輯運算子有&& 運算子(AND|| 運算子(OR! 運算子(NOT  

遞增與遞減、位元、複合指定運算子

指定閱讀課程投影片、非同步教學.

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours

 

4:

課程主題條件式流程控制

課程內容:    

1 流程控制簡介

 .循序結構、選擇結構、重覆結構

選擇結構

 .if, if-else, if else if, switch 指令

3 綜合範例-閏年計算器、簡易計算機製作

指定閱讀課程投影片、非同步教學 、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 4 hours

 

5:

課程主題迴圈流程控制 

課程內容:  

1 For 迴圈

2 While 迴圈  

流程跳離指令

  .Break/Continue

指定閱讀課程投影片、非同步教學 、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 5 hours

 

6:

課程主題 :  陣列與字串

課程內容:  

陣列簡介

 .一維陣列、二維陣列多維陣列

字元與字串

String 類別常見方法    

指定閱讀課程投影片、非同步教學 、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 5 hours

 

7:

課程主題 :   Java的類別方法

課程內容:   

函數的基本觀念

 .Java 的類別方法是由方法名稱和大括號所括起來的程式碼區塊所組成

 .參數傳遞方式

陣列參數的傳遞

 .陣列傳遞給方法時,只是傳遞該陣列存放於記憶體的位址

遞迴函數

 .是在函數本身中呼叫自己

4 Math 類別常見方法

 .Math 類別中的方法皆宣告為靜態(static),以「類別名稱. 方法名稱」的格式呼叫方法   

指定閱讀課程投影片、非同步教學 、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours

 

8:

課程主題 :   Java類別與物件概念

課程內容:   

區域變數、類別變數與實例變數

類別方法與實例方法

 .類別方法用於處理與整個類別相關的操作

 .實例方法則用於處理與特定類別實例相關的操作 

指定閱讀課程投影片、非同步教學 、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours

 

9:

課程主題 :   期中考

課程內容:    隨堂考試  

指定閱讀:   1-8週上課內容.

教學活動與作業 : 1. 線上考試

學生學習投入時間:   課堂 :  2 hours.  課程前後 : 12 hours

 

10:

課程主題 :  類別與物件概念

課程內容:  

1. 封裝(Encapsulation) 

 .指將一個類別的內部細節(例如變數和方法)隱藏起來,同時提供公開介面以供外部使用 

2.Setter、Getter方法

 .GetterSetter方法之觀念是物件導向程式設計中的重要機制

 .實現封裝、提高程式碼的安全性和可讀性,並允許對資料進行有效的驗證

3.實作案例:洗牌和發牌模擬

 .模擬一副撲克牌的洗牌(Card Shuffling)和發牌(Dealing)的過程

指定閱讀課程投影片、非同步教學 、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours

 

11:

課程主題類別與物件深度理解

課程內容:  

1.類別、建構子與方法

 .類別是物件的模板

 .建構子用於初始化物件的狀態

 .方法則定義了物件可以執行的操作行為

2.成員的存取控制

  . Java成員(Members)的存取控制(Access Control)是透過修飾器(Access Modifiers)來規範實作而成的

 .修飾器(Access Modifiers) 是公開(Public) 、私有(Private) 、受保護(Protected) 、預設(Default) 等四種

3.建構子與多載的運用方式

 .建構子(Constructor)和多載(Overloading)是物件導向程式設計中常見的兩個概念

 .它們用於初始化物件和提供不同的建構方式   

指定閱讀:   課程投影片、非同步教學 、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 5 hours

 

12:

課程主題 :   繼承的基礎觀念 

課程內容:

1. 繼承

 .繼承(Inheritance)是物件導向程式設計(Object-Oriented Programming; OOP)中的一個核心概念

 .表示一個類別可以繼承另一個類別的屬性(Property)和方法(Method)

  . 子類別(Subclass)可以繼承父類別(Superclass)的特性

2. 方法的繼承

 .方法的繼承是物件導向程式設計中一個重要的概念,它允許子類別繼承父類別的方法

3. 方法的改寫

 .Java物件導向程式設計中的一個重要概念。

 .子類別(Subclass)繼承自父類別(Superclass)時,子類別可以改寫或覆寫父類別中的方法,以符合需求

指定閱讀: 課程投影片、非同步教學 、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 5 hours

 

13:

課程主題 :  繼承的進階觀念

課程內容:

1. 繼承重要觀念 

  .擴展性(Extensibility)

  .多型(Polymorphism)

  .抽象類別和介面(Abstract Classes and Interfaces)

  .避免程式碼重複(Avoiding Code Duplication)

  .設計模式(Design Patterns)

2. 方法改寫進階設計

 .由程式實作案例來探討Java物件導向程式設計的進階概念,展示基本的類別繼承和方法改寫

指定閱讀: 課程投影片、非同步教學、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 4 hours

 

14:

課程主題 :  抽象類別

課程內容:

1. 抽象類別基礎介紹

 .物件導向程式設計(OOP)將現實世界中的事物抽象化為程式世界中的物件

 .四大特性,分別是封裝、繼承、多型和抽象

 .抽象(Abstraction)是一種將類別的共同特性提取出來,形成抽象類別或介面

 .抽象(Abstraction)隱藏其具體實現細節,僅顯示功能特性

 .主要用於定義具有共同特徵和行為的類別,並為子類別提供一個統一的模板

2. 抽象類別的設計 

 .抽象類別(Abstract Class)可以聲明方法名稱但不提供具體實作

 .抽象類別不能被用來直接創建物件,無法被直接實例化(即無法使用關鍵字new創建該類別的物件)

 .具有抽象方法(Abstract Method)的類別就被稱為抽象類別

 .抽象方法使用abstract關鍵字聲明,不包含具體的程式碼

 .抽象類別為其子類別提供共用的變數和方法

 .子類別必須實作抽象類別中的所有抽象方法

 .抽象類別不可能在類別繼承結構的最底層

 .一個final類別不能被其他類別繼承

3. 抽象類別的應用

 .抽象類別是一個不能被實例化的類別,它定義了一個類別的基本結構和方法

指定閱讀: 1. 課程投影片、非同步教學、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours 

 

15:

課程主題 介面

課程內容:

1. 介面基本概念

 .介面(Interface)是一種定義抽象方法的抽象類型

 .用於定義一個類別應該實現的方法規範,但並不提供這些方法的實作內容

2. 介面的使用情境

 .介面(Interface)提供了抽象化的方式,讓程式設計師能夠定義一組規範,而不需要指定具體的實現方式 

3. 介面的應用範例

 .介面在設計模式中扮演著重要角色,隨後提出單層介面、兩層介面,以及兩層介面整合抽象類別的實作 

指定閱讀: 1. 課程投影片、非同步教學、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours

 

16

課程主題泛型與集合(上)

課程內容:

1.泛型(Generics)提供了編譯時類型安全檢測機制,該機制允許開發人員在編譯時檢測到非法的類型

2.泛型提供描述資料和演算法的方法,支援在不改變演算法描述的情況下使用不同的資料類型 

3.Java集合框架簡介 

  .Java提供可重用資料結構和演算法,被稱為Java集合框架(Java Collections Framework)

  .集合(Collections)Java程式設計中,採用特定方式與資料結構來儲存資料並處理一組組的物件

 .集合框架(Collections Framework)是一個廣泛應用於Java程式設計的標準API

4. 集合框架的介面元件

 .Iterator介面(java.util.Iterator)Collection介面(java.util.Collection)

  .List介面(java.util.List)Queue介面(java.util.Queue) 

5. 應用範例 

指定閱讀: 課程投影片、非同步教學、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours 

 

17

課程主題泛型與集合(下)

課程內容:

1. 映射框架介紹

 .映射框架(Map Framework)應用於需要映射關聯資訊的場景

 .提供了有效的方式處理鍵-值對(Key-Value Pair),以滿足不同應用需求

2. 映射框架的介面元件

 .映射(Map)Java Collections Framework中的一種介面

 .映射(Map)並不屬於Collection介面,而是定義了鍵(Key)和值(Value)之間的映射

 .每一個鍵都有一個相對應的值,而每一個鍵在Map中是唯一的

 .Map不允許相同的鍵存在,但不同的鍵可以映射到相同的值 

3. 應用範例

指定閱讀: 課程投影片、非同步教學、線上課程

教學活動與作業 : 1. 講授課程內容 2. 程式實作示範  3. 作業

學生學習投入時間:   課堂 :  3 hours.  課程前後 : 6 hours 

 

18:

課程主題 :  例外處理及期末考試

課程內容:   

1. 例外處理的基本概念

 .Java例外處理(Exception Handling)是介紹如何有效處理程式執行中可能發生的異常狀況

2. try-catchtry-catch-finally區塊 

 .使用try-catch區塊的技巧,包括處理多個catch區塊和使用finally區塊

3. 例外傳播throwthrows 

  .throw用於在程式碼內部拋出例外

 .throws用於聲明一個方法可能拋出的例外,讓呼叫者知道所聲明的方法之潛在風險

4. 應用範例

指定閱讀:   10-18週上課內容、課程投影片、非同步教學、隨堂考試.

教學活動與作業 : 1. 筆試  2. 講授課程內容  3. 程式實作示範 4.作業

學生學習投入時間:   課堂 :  2 hours.  課程前後 : 6 hours

請先報名此課程才可瀏覽教材