程設一.

Slides:



Advertisements
Similar presentations
減重藥膳與耳穴 台北市立聯合醫院 陽明院區 中醫科 林俐嘉 醫師 一、肥胖定義 1.BMI 超過 24─ 體重過重;超過 27─ 肥胖 BMI ( Body Mass Index ,身體質量指數)它是 身高與體重之間關係的一種指標,數值越大代表 一個人越胖。 個人體重(公斤)除以身高(公尺)兩次,就是.
Advertisements

怎樣才算「識飲識食」? 適當 適量 在日常生活中進食 適當 和 適量 的食物 和飲料。 何謂「適當」? 1. 不偏食,選擇不同種類的食物和飲料, 以吸收不同的營養素。 2. 多進食營養價值高的食物。 3. 避免進食熱量、脂肪、糖份、鹽份和膽 固醇含量過高的食物,以及加工食品 ( 如 罐頭和即食麵.
系統分析與設計 楊子青 H-1 H 、物件導向技術 n 物件導向的基本概念 – 物件、類別 – 封裝、繼承 – 同名異式 ( 多型 ) 、超荷 ( 過載 ) n 物件導向分析與設計及塑模工具 n UML 塑模工具.
第四章 类、对象和接口.
均衡飲食與健康體位 逸馨園 營養師 鍾筱薇.
飲食與體重管理 主講者:鄭安君 營養師 泳翔食品股份有限公司.
6. 6 Overloading methods and constructors 6
C语言程序设计 主讲教师 :张群燕 电话:
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
台南市永康區五王國小 體重過重學童衛教宣導
TQC+ 物件導向程式認證-JAVA.
第一章 面向对象程序设计.
營養講座系列- 健康飲食 VS 預防代謝症候群 永得有限公司 司徒蓁 營養師 主講.
第二章 JAVA语言基础.
JAVA程序设计 (03) JAVA Programming
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
程設一.
BLANK overview.
程式設計實作.
Q1: 追蹤程式: 印出結果? 搶答 while (i<=n) { p=p*i; i=i+2; }
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
第一章 C语言概述.
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
物件導向程式設計 (Object-Oriented rogramming)
例外處理(Exception Handling)
Derived Class 前言 衍生類別的定義 單一繼承 public, protected, 和 privated 基底類別
Java基础 JavaSE异常.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
Classes Lecturer: 曾學文.
CHAPTER 9 建構方法 ROBERT.
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第六章 类的扩展与继承.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
Java 程式設計 講師:FrankLin.
本單元介紹何謂變數,及說明變數的宣告方式。
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Java软件设计基础 5. 继承与多态.
Java语言程序设计 第五部分 Java异常处理.
Java程序设计 第9章 继承和多态.
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
软件学院 张 慧 清华大学软件学院.
Data Structure.
Java程序设计 第2章 基本数据类型及操作.
程式設計 老師:戴自強 助教:楊斯竣.
第三章 C# 基础知识.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第7章 异常处理.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java语法基础.

目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
C#快速導讀 流程控制.
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第6章 继承和多态 伍孝金
Summary
Presentation transcript:

程設一

靜宜賽碼場 – 網頁版 註冊 http://coding.pu.arping.me/

靜宜賽碼場 – 註冊

靜宜賽碼場 – 註冊

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

靜宜賽碼場 – 註冊

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

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

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

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鍵分層

kb_practice_helloJava 練習 kb_practice_helloJava

程式的用途 自用 破壞

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

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

程式的執行 – 實例 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

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

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

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

JAVA Project - Example Project name Package name

Data type Ex:

Data type range

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

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

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

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

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

Input

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

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

Operator(運算子)

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

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

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

浮點數 Case1: Case2:

Example what's wrong ??

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

HW Calculate Body Mass Index (BMI)

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

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

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

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

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

else if - example

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

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

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

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

練習 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

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

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

迴圈 種類 for while do … while

for 語法: Ex1: Ex2:

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

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

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

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

巢狀迴圈

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

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

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

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

程設三

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

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

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

程設四

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

HW1 Stack實作

HW2 (驗收HW1)

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

kb_practice_abstract 練習1 kb_practice_abstract

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

kb_practice_toString 練習2 kb_practice_toString

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

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

example overriding implement

kb_practice_overriding 練習3 kb_practice_overriding

HW3 abstract class (P4Test-017)

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

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

kb_practice_polymorphism 練習4 kb_practice_polymorphism

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

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

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

練習5 Interface-002

HW4 P4Test-018

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

練習6 interface-003

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

練習7 kb_practice_enum

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

練習8 kb_practice_generic

HW4 P4Test-011

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

Exception type ArrayIndexOutOfBoundsException ArithmeticException

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

kb_practice_Exception 練習 kb_practice_Exception

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

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

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

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

練習 Exception-007

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