SlideShare une entreprise Scribd logo
1  sur  54
第二堂:
學習的 Java 語法 (1)
Java 的歷史與程序開發
柯力中 Jason Ko
Jason的Android 快樂應用程式學習班
• Java 介紹
• 安裝 Eclipse 與 執行 Java 程式
• Java 的程式結構
• 變數與運算子
• 流程控制
• 變數的修飾子
課程內容
Java 介紹
Jason的Android 快樂應用程式學習班
什麼是電腦(程式)語言?
• 就像人溝通會用不同的語言, 跟電腦溝通需要
使用電腦語言
Jason的Android 快樂應用程式學習班
用我聽得懂的
話跟我說!
電腦語言有高低階之分
高階語言 編譯器 機器碼 執行
• 電腦只聽得懂 0 與 1 的二維碼, 但人無法只用
0 與 1 溝通. 為了讓寫程式更像人在說話, 我們
發明了高階語言與編譯器.
如果衣服打5折,
我就買 2 件 讓我來翻譯
(compiler)
01010001
…..
為什麼要用 JAVA
• 因為 Java 可以多平台執行, 且設計方式為物
件導向, 簡單說就是易學且通用
很多人說我易學
難精! 泣~
我很友善的~我
可以在任何平台
執行, 只要先安
裝 JVM
• JVM 是 Java Virtual Machine 的簡稱, 就是 Jave 虛擬
機, 它能夠理解 Java 編譯器編譯過的程式碼
什麼是 JVM
.java 編譯器 JVM執行.class
程式碼
再複習一下
.java 編譯器 JVM執行.class
高階語言 編譯器 機器碼 執行
(compiler)
(.class 不是機器碼)
結論: 寫好 Java, 其他的事就讓
compiler 跟 JVM 處理!
Jason的Android 快樂應用程式學習班
Java 簡介(不用記)
• Java 誕生於 1995 年
• 最多工程師使用的語言
• 特色為物件導向, 跨平台, 泛型設計
• Android 使用 Java 語言開發, 然後再編譯成 .dex 檔給機
器使用
Jason的Android 快樂應用程式學習班
我很 Young!
我很紅!
猜猜看這程式碼寫啥!
安裝 Eclipse 與 執行 Java 程式
Jason的Android 快樂應用程式學習班
下載 Eclipse
• Google 搜索 eclipse download
• 下載
Jason的Android 快樂應用程式學習班
• File => new => Java Project
建立一個新 Java Project
• package => com.example.learn
• name => LearnJava
Jason的Android 快樂應用程式學習班
建立一個新 class
• 在 project 按右鍵 => new => classes
• 取名為 Demo
Jason的Android 快樂應用程式學習班
Demo.class
Jason的Android 快樂應用程式學習班
1. 到 Demo.java 檔, 按右鍵
2. 選 Run As => Java Application
3. 結果會出現在 console
執行 Java 程式
1. main() 是 Java 程式的起點
2. 程式要用 block { } 框起來
3. 注意縮排
4. 敘述結束時要用 ; 分號
5. 如果要用註解, 使用 // or /* */
Jason的Android 快樂應用程式學習班
Java編寫時要點
Java 的程式結構
Jason的Android 快樂應用程式學習班
Jason的Android 快樂應用程式學習班
Java 的程式結構
.java 檔
class
方法 1
方法敘述
方法 2
方法敘述
Jason的Android 快樂應用程式學習班
.java 檔 : 裡頭有一個 class
public class Dog{
}
Jason的Android 快樂應用程式學習班
class : 裡頭有一個或多個 method
public class Dog{
void bark(){
}
void jump(){
}
}
Jason的Android 快樂應用程式學習班
method : 執行的指令
public class Dog{
void bark(){
bark指令1;
bark指令2;
}
void jump(){
jump指令1;
}
}
變數與運算子
Jason的Android 快樂應用程式學習班
變數
• 什麼是變數? 一個存放資料的位置, 要跟它(電
腦)說要存放的資料是哪種 type
• 變數可分為兩種:基本型別, 參照型別
• 變數的使用包含:宣告和指定參照物件
Jason的Android 快樂應用程式學習班
變數的宣告
• int i
• String name
• Dog mDog
Jason的Android 快樂應用程式學習班
宣告:給定 Type 與 變數名稱
Type 變數名稱
變數參照物件
• int i = 8;
• String name = “Hello world!”;
• Dog mDog = new Dog();
Jason的Android 快樂應用程式學習班
變數參照物件:用等號指向物件
物件
• 變數有兩種 Type : 基本型別跟參照型別
• 基本型別(Primitive): byte, short, int, long, float, double,
char, boolean
• 參照型別(Reference): String, Dog, Cat 等(自創的 class
都是)
• 差別在於, Primitive 會把值直接存入變數, Reference 會
把物件的位址存入變數
Jason的Android 快樂應用程式學習班
變數的Type
• 參照型別(Reference): String, Dog, Cat 等(自
創的 class 都是)
Jason的Android 快樂應用程式學習班
變數的Type:參照型別
變
數
Reference 位址
物
件
位址指向的物件
mDo
g
Reference 位址
Dog
ex. Dog mDog = new Dog();
• 基本型別(Primitive): byte, short, int, long,
float, double, char, String, boolean
Jason的Android 快樂應用程式學習班
變數的Type:基本型別
變
數
Primitive
i
8(機械碼)
ex. int i = 8;
運算子
• 算術運算子 + - * /
• 邏輯運算子 &&, ||, !
• 比較運算子 ==, !=
Jason的Android 快樂應用程式學習班
運算子:算術運算子
• 算術運算子 + - * /
Jason的Android 快樂應用程式學習班
練習1:
int i = 3;
i = i + 8;
=> i = ?
練習2:
int mNum = 3;
mNum = mNum / 3;
mNum = mNum + 20
=> mNum = ?
Ans: i = 11 Ans: mNum = 21
運算子:邏輯運算子
• 邏輯運算子 &&, ||, !
• && => And 運算, 左右兩邊條件都要過
• || => Or 運算, 左右兩邊條件要有一個過
• ! => Not, 得到的結果反過來, true 變 false, false 變
true
Jason的Android 快樂應用程式學習班
運算子:邏輯運算子
Jason的Android 快樂應用程式學習班
Ans:
a 條件通過,
b 條件沒過,
所以是 false
練習1:
boolean a = true;
boolean b = false;
a && b => ? true or
false
練習2:
boolean a = true;
boolean b = false;
a || b => ? true or
false
Ans:
a 條件通過,
b 條件沒過,
a 跟 b 其中有一個有過,
所以是 true
運算子:比較運算子
Jason的Android 快樂應用程式學習班
練習 1:
int i = 1;
int j = 2;
i != j => ? true or false
• 比較運算子 ==, !=
• == => 左右兩邊相等, 則回傳 true, 不相等回傳 false
• != => 左右兩邊不相等, 則回傳 true, 相等回傳 false
Ans :
1 不等於 2, 所以是 true
小試身手:運算子練習
Jason的Android 快樂應用程式學習班
練習 1:
int i = 1; int j = 2;
則 i == j
=> ? true 還是 false
練習 2:
boolean isGood = true;
則 (isGood && 1!=2)
=> ? true 還是 false
流程控制
Jason的Android 快樂應用程式學習班
流程控制
1. if , else
2. switch case
3. for loop (For 迴圈)
4. while
Jason的Android 快樂應用程式學習班
If, else 如果, 否則就
ex 1.
if (房價打七折){
我就買一棟房子
}else{
我就到行政院去抗議
}
Jason的Android 快樂應用程式學習班
If, else 如果, 否則就
ex 2.
boolean a = ture;
boolean b = false;
if ( a && b ){
System.out.printIn(“ a 跟 b 條件都過了”)
}else{
System.out.printIn(“ a 跟 b 其中有個條件沒過”)
}
Jason的Android 快樂應用程式學習班
題目:一個隨機變數1~100 如果此變數大於
50, 則輸出 “變數大於50”, 否則輸出”變數小於
50”
If, else 練習
p.s 隨機變數 1 ~ 100 用 Math.random() * 100 +
1
switch case
ex:
int num =3;
switch ( num ){
case 1:
System.out.printIn(“送妳一朵玫瑰花”);
break;
case 2:
System.out.printIn(“送妳兩朵玫瑰花”);
break;
case 3:
System.out.printIn(“送妳三朵玫瑰花”);
break;
}
Jason的Android 快樂應用程式學習班
switch case 練習
Jason的Android 快樂應用程式學習班
題目:一個隨機變數 1~12, 如果此變數為 1
就輸出 “一月”, 變數為2就輸出, “二月”, 以此類
推
p.s 隨機變數 1 ~ 12 用 (int)Math.random()*11+1
for 迴圈
for ( 初始; 條件; 控制運算式) {
迴圈動作;
}
Jason的Android 快樂應用程式學習班
如果條件通過, 我就進行迴圈內的動作, 執行完迴
圈動作, 再執行控制(運算式)的動作
for 迴圈
for ( int i = 0; i < 10; i ++) {
System.out.printIn(“Current i is ” + i );
}
Jason的Android 快樂應用程式學習班
初始條件 i = 1, 如果 i 小於 10,
就輸出 “Current i is i變數” 的字串,然後 i = i + 1
等到 i >= 10,
結束迴圈
while 迴圈
int i = 0;
while ( i < 10){
System.out.printIn(“Current i is ” + i );
i++;
}
Jason的Android 快樂應用程式學習班
如果 i 數字小於 10, 輸出 “Current i is i變數” 的字串,
然後 i = i + 1,一直循環.
問: 把 i++; 拿掉, 會發生什麼事?
Array 陣列
int[] i;
i = new int[5];
Jason的Android 快樂應用程式學習班
陣列可以想成”置物櫃”
宣告 int Array i
配置 intArray i
i[0] = 1;
i[1] = 2;
將數字放入 intArray i
i[0] i[1] i[2] i[3] i[4]
Array 結合 for 迴圈
int[] iArray = new int[5];
for (int i = 0, i< 5, i++){
iArray[i] = i *3;
}
Jason的Android 快樂應用程式學習班
問, iArray[4] = ?
小試身手1:數字打印
Jason的Android 快樂應用程式學習班
1. 打印出數字 1 ~ 1000
小試身手2:計算學生平均分數
Jason的Android 快樂應用程式學習班
1. 學生 30 人, 隨機給分 0 ~ 100
2. 請計算學生平均分數
p.s
1. 隨機分數用 (int)Math.random()*100+1
2. 請使用 Array
變數的修飾子
Jason的Android 快樂應用程式學習班
class 成員的存取控制
Jason的Android 快樂應用程式學習班
• private => 只有在成員所屬的 class 之中, 才能存取
• protected => 除了class 本身, 在 Subclasses 或 同一
package 下, 可存取
• public => 在任何 class 下都可存取
• default (不寫控制) => 在同一個 package 下可存取
Static 共享變數
Jason的Android 快樂應用程式學習班
• 變數使用 static => 此 class 的 變數可共享
• 方法使用 static => 方法共享, 不用 new class
物件即可使用
參考
Jason的Android 快樂應用程式學習班
1. 深入淺出 Java 程式設計
http://www.books.com.tw/products/00103118
83
2. 最新 Java 7 程式語言
http://www.books.com.tw/products/00105883
25

Contenu connexe

Plus de 力中 柯

第七堂 Youtube 播放 app (2)
第七堂 Youtube 播放 app (2)第七堂 Youtube 播放 app (2)
第七堂 Youtube 播放 app (2)力中 柯
 
第六堂 Youtube 播放 App (1)
第六堂 Youtube 播放 App (1)第六堂 Youtube 播放 App (1)
第六堂 Youtube 播放 App (1)力中 柯
 
Admob and android
Admob and androidAdmob and android
Admob and android力中 柯
 
第五堂 計算機App與網站瀏覽app
第五堂 計算機App與網站瀏覽app第五堂 計算機App與網站瀏覽app
第五堂 計算機App與網站瀏覽app力中 柯
 
Gradle 和 Android Studio --- Jason Ko
Gradle 和 Android Studio --- Jason KoGradle 和 Android Studio --- Jason Ko
Gradle 和 Android Studio --- Jason Ko力中 柯
 
第四堂 Android 的架構與開發工具
第四堂 Android 的架構與開發工具第四堂 Android 的架構與開發工具
第四堂 Android 的架構與開發工具力中 柯
 
第一堂 進入 Android 的世界 --- Jason 的 Android 應用程式快樂學習班
第一堂 進入 Android 的世界 --- Jason 的  Android 應用程式快樂學習班第一堂 進入 Android 的世界 --- Jason 的  Android 應用程式快樂學習班
第一堂 進入 Android 的世界 --- Jason 的 Android 應用程式快樂學習班力中 柯
 

Plus de 力中 柯 (7)

第七堂 Youtube 播放 app (2)
第七堂 Youtube 播放 app (2)第七堂 Youtube 播放 app (2)
第七堂 Youtube 播放 app (2)
 
第六堂 Youtube 播放 App (1)
第六堂 Youtube 播放 App (1)第六堂 Youtube 播放 App (1)
第六堂 Youtube 播放 App (1)
 
Admob and android
Admob and androidAdmob and android
Admob and android
 
第五堂 計算機App與網站瀏覽app
第五堂 計算機App與網站瀏覽app第五堂 計算機App與網站瀏覽app
第五堂 計算機App與網站瀏覽app
 
Gradle 和 Android Studio --- Jason Ko
Gradle 和 Android Studio --- Jason KoGradle 和 Android Studio --- Jason Ko
Gradle 和 Android Studio --- Jason Ko
 
第四堂 Android 的架構與開發工具
第四堂 Android 的架構與開發工具第四堂 Android 的架構與開發工具
第四堂 Android 的架構與開發工具
 
第一堂 進入 Android 的世界 --- Jason 的 Android 應用程式快樂學習班
第一堂 進入 Android 的世界 --- Jason 的  Android 應用程式快樂學習班第一堂 進入 Android 的世界 --- Jason 的  Android 應用程式快樂學習班
第一堂 進入 Android 的世界 --- Jason 的 Android 應用程式快樂學習班
 

第二堂 學習 Java 語法 (1) Java 歷史與程序開發