Presentation is loading. Please wait.

Presentation is loading. Please wait.

程設一.

Similar presentations


Presentation on theme: "程設一."— Presentation transcript:

1 程設一

2 靜宜賽碼場 – 網頁版 註冊

3 靜宜賽碼場 – 註冊

4 靜宜賽碼場 – 註冊

5 靜宜賽碼場 – 註冊 填寫「學習家族組名」

6 靜宜賽碼場 – 註冊

7 靜宜賽碼場 – 網頁版 加選課程

8 靜宜賽碼場 – 軟體版 路徑: 執行:

9 靜宜賽碼場 – 軟體版 6 2 3 4 1 5

10 JAVA檔 class method Note: 1、「;」:一行的結束 2、「{」:一層的開始 「}」:一層的結束 3、利用tab鍵分層
寫入你的程式碼 1、JAVA檔的檔名要跟內部的其中一個class名稱相同,並且為public class 2、一個java檔內只能有一個public class 3、一個project只會有一個main method,會從多個java檔中找尋一個main method為程式的進入點 Note: 1、「;」:一行的結束 2、「{」:一層的開始 「}」:一層的結束 3、利用tab鍵分層

11 kb_practice_helloJava
練習 kb_practice_helloJava

12 程式的用途 自用 破壞

13 程式語言分類 第一代 機器語言 第二代 組合語言 第三代 高階語言(程序導向語言)
Ex: FORTRAN、COBOL、PASCAL、Ada、C、BASIC、Perl 第四代 極高階語言(物件導向語言) Ex: C++、JAVA、VB、PHP、C#、Python、smalltalk 第五代 LISP、PROLOG

14 程式的執行 編譯器 Source code execute EX: JDK

15 程式的執行 – 實例 C、C++:編譯 JAVA:編譯+直譯 載入階段 執行階段 compiler linker loader
Source code Object code Execute code RAM 執行 .obj .exe (binary code) JAVA:編譯+直譯 靜態宣告:載入階段時執行,ex: int a[10]; 動態宣告:執行階段時執行,ex: int* a = new int[10]; compiler Source code Byte code JVM .class interpreter Compiler:將高階程式翻譯成組合語言程式 Linker: 連結函式庫 Loader: 載入到memory

16 JDK ( Java SE Development Kits)
JAVA ME JAVA EE 大型網站開發 JAVA SE (JDK) 手機、嵌入式系統 一般應用程式適用

17 寫程式的準則 要排版 變數的命名須有意義 要會debug Ex: 有排版: 沒排版: int a; // 不好的命名
int age; // 好的命名 利用tab鍵來縮排

18 JAVA Project Project Package Java檔 Java檔 Java檔 Class Package Package
method method Class

19 JAVA Project - Example Project name Package name

20 Data type Ex:

21 Data type range

22 變數的命名 原則: 1、有意義 2、不要太長 EX: 開頭小寫,表示data type 開頭小寫 開頭大寫
Note:關鍵字:藍色 -> 不可宣告成變數 識別字:黑色 -> 可宣告成變數

23 Example1-宣告、給值 宣告、給值 分開寫 宣告、給值 寫在一起 多個變數

24 Example2 – 宣告、給值 a = ???

25 Output 法一: 使用System.out.println 法二: 使用System.out.printf

26 System.out.printf %d:用於整數 Ex: %f:用於浮點數

27 Input

28 練習 kb_practice_inputOutput 輸入三個data, 第一個為int型態的data 第二個為double型態的data
第三個為String型態的data 印出此三個data kb_practice_inputOutput

29 加分題 若有兩個整數x=1、y=2,如何運用第三個變數z,將x與y兩數的內容交換? kb_swap

30 Operator(運算子)

31 % 用途:取餘數 應用:切割整數 Ex:

32 ++、-- 後置加:a++ 前置加:++a

33 除法 // 宣告int // 宣告double

34 浮點數 Case1: Case2:

35 Example what's wrong ??

36 練習 觀察下列式子的結果 kb_practice_++

37 HW Calculate Body Mass Index (BMI)

38 if、else 用途:條件判斷,用在2選1的情況 語法: Ex : 1 不是做case1就是做case2 2

39 練習1 輸入2個整數a、b,若a>=b或a==10則執行a-b並印出,否則執行a+b並印出 kb_practice_ifelse

40 練習2 kb_practice_ifelse2 考試成績有六個級別 A B C D E F 分別對應分數
利用if else技巧,輸入分數印出對應的級別 kb_practice_ifelse2

41 HW 輸入一個整數,若是奇數,輸出字串Odd,否則輸出字串Even。 P1Test-023

42 else if 用途:條件判斷,用在n選1的情況(n>=3) 搭配if、else使用 語法: 1 2 4選1,
從case1~case4選其中執行 3 4

43 else if - example

44 else if - example 下列兩者的差異?

45 if…else VS else if If…else:2選1 else if: n選1,

46 練習 kb_practic_elseif 有一組數列如下 100 78 3 46 輸入一個整數,由左至右掃描上列此組數列,當符合
此整數時則印出 ” match” 並且結束, 否則印出”Not match” kb_practic_elseif

47 練習 1032-P1-下9週-Test1-判斷閏年 (30 points) 1、西元年份是400的倍數
想法: 1、西元年份是400的倍數 2、西元年份是4的倍數但不是100的倍數 閏年

48 練習 Given three numbers x, y, and z, find out if x, y, and z can represent the lengths of the sides of a triangle. kb_FindOutIfTriangle

49 統一作業 P1-hw007 1042-前九週-P1-hw007-判斷奇偶數(3%)

50 加分題 kb_guessNum 輸入4個整數, 其中第一數為答案碼 (000~999) 第二數~第四數為輸入碼(0~9),
檢驗是否猜中 (第一數包含第二~第四數即猜中) note:數字可重複 ex: 猜中 未猜中 kb_guessNum

51 迴圈 種類 for while do … while

52 for 語法: Ex1: Ex2:

53 for 如何不執行完迴圈就先行離開? Ex: 「break」

54 練習 kb_practice_for 輸入一個整數n 1、若n值大於5,則印出 ”Fail”
2、否則利用for迴圈方式印出n次 ”hello”

55 練習 kb_practice_for2 輸入一個整數n , 1、若n<1 或 n>100則輸出"Fail"

56 練習 P1Test-018 輸入一個整數n 利用for迴圈計算n!的值

57 巢狀迴圈

58 練習 kb_99multipyTable 顯示某區間的99乘法表 input: 2 5 output: 2x1 2x2 ......

59 HW P1Test-006 輸入兩個整數,計算兩個整數之間所有奇數的和

60 練習 kb_gcd 輸入兩個整數,計算兩個整數的最大公因數

61 上機模擬考 kb_game 遊戲主角有1000血量, 受到n次攻擊,第一次受到的傷害量為A1....第n次受到的傷害量為An, 每受到1個傷害量主角可累績1點的怒氣, 當受到的傷害量>=1000時,則印出"主角死亡" 當怒氣100時則印出"主角發動max必殺技" 當怒氣99~50時印出"主角發動小技能" 當怒氣49~0時印出"主角發動普通攻擊" 當怒氣<0時印出"輸入錯誤“ Ex: input: output: 主角發動max必殺技

62 程設三

63 Inheritance(繼承) 目的:重複使用code 原則: 語法:
愈上層的類別愈描象(base class or parent class) 愈下層的類別愈精確(derived class or child class) 語法: Parent class child class

64 example 可想像成super(w,h) == TwoDShape(w,h)

65 Visibility(能見度) JAVA visibility 同一個class 同一個package 不同個package
All methods derived class Not Private ok Package(預設) Protected Ok: method Fail: variable public

66 程設四

67 Class與method的應用 應用:將class當作容器來儲存多個data Ex: Stack s; s.push(10);

68 HW1 Stack實作

69 HW2 (驗收HW1)

70 Abstract class 功能: 1、建構在繼承之上 2、只實作部份methods,abstract methods不實作
優點:讓base class較抽象化 語法: 第一個methods(未實作) 第二個methods(已實作) Note: abstract class 不可直接new

71 kb_practice_abstract
練習1 kb_practice_abstract

72 toString() 任何類別都預設有此method 用途:印出類別物件時可直接印出字串 語法: or 實作
All class 都繼承自Object這個類別 or 實作

73 kb_practice_toString
練習2 kb_practice_toString

74 Overriding(覆寫) Ex: 功能: 1、 建構在繼承之上 2、父類別與子類別具有同相名稱的method,
Type相同 參數數量、type相同

75 Overloading(多載) 功能:多個methods名稱相同,但參數的型 態、個數不同 EX: 參數個數=1 參數型態= String
參數個數=2 參數型態= String、int

76 example overriding implement

77 kb_practice_overriding
練習3 kb_practice_overriding

78 HW3 abstract class (P4Test-017)

79 Polymorphism(多型) 前提:1、多型建構在繼承之上(已完成父子類別) 2、父類別與子類別具有相同名稱但不同功能的method
(overriding) 優點:讓父類別當作子類別的通用型態,以增加使用上的 彈性,減少系統的開發複雜度 Ex: 讓車子變戰車 or 讓車子變馬車 or 讓車子變汽車 (向上轉型)

80 Example1 可用的成員變數、methods = class A + overriding overriding

81 kb_practice_polymorphism
練習4 kb_practice_polymorphism

82 Example2 印出?????? Step1: R擁有的methods (繼承) Step2: R轉型後methods的內容
Step3: 呼叫到的method Ans: 4

83 Interface(介面) – part1 功能:只宣告但所有methods都不實作 優點:讓base class更抽象化 建立:
介面名稱 (隨便命名) 僅宣告不實作 Note: 1、interface 不可直接new 2、interface 可繼承

84 Example 介面: 實作: 介面名稱 實作介面

85 練習5 Interface-002

86 HW4 P4Test-018

87 Interface(介面) – part2 同時實作多個介面: 介面1 介面2

88 練習6 interface-003

89 enum(列舉) Def:定義名詞來取代常數 宣告: 使用: 列舉名稱

90 練習7 kb_practice_enum

91 generic(泛型) 功能:讓type的使用更有彈性 Ex: 也不一定要用T

92 練習8 kb_practice_generic

93 HW4 P4Test-011

94 Exception 目的:讓你的程式在執行階段時更加穩固, 不易crash 語法1:自動偵測例外類型,利用「try」、「catch」
除0發生例外錯誤 必要 編譯階段 – compiling 載入階段 - 點兩下執行檔 執行階段 - 程式執行中 arithmeticException 非必要 萬用寫法

95 Exception type ArrayIndexOutOfBoundsException ArithmeticException

96 Example1 Method須加上此關鍵字 編譯階段 – compiling 載入階段 - 點兩下執行檔 執行階段 - 程式執行中

97 kb_practice_Exception
練習 kb_practice_Exception

98 Exception 語法2:手動引發例外 -> 利用「throw」 類別名稱, 可自行建立 or 使用內建類別
可加入例外訊息 再利用getMessage()取得訊息 引發例外後程式即會中斷,所以不會執行到此行

99 Exception 自行引發例外 + 不中斷的做法 內建類別 利用getMessage()取得回傳的訊息

100 Exception 自行引發例外 +不中斷的做法+不使用內建例外類別 自行建立例外類別 自行建立例外類別

101 Example2 印出例外回傳的字串 自動偵測哪種例外 手動指定哪種例外
若 a.div(11,1) 則輸出 “Exception: C>10” 自動偵測哪種例外 手動指定哪種例外

102 練習 Exception-007

103 統一作業 P4-hw008 P4-hw007 P4-hw006


Download ppt "程設一."

Similar presentations


Ads by Google