SlideShare a Scribd company logo
1 of 34
Java 基本程式設計
基本觀念與編譯執行
●Write once, run
ererywhere
●物件導向
●跨平台
●簡單
●安全
●高度可攜性
●多重執行緒
圖版權?
Class HelloWorldApp {
Public static void main(String[] args) {
System.out.printin (“Hello
World!”);
}
}
HelloWorldApp.java
Compiler
Win32
UNIX
MacOS
JVM JVM JVM
基本觀念與編譯執行
編譯方式: 原始碼透過 javac 編譯成為位元碼(byte code)
執行方式: 經由執行 java, 並傳遞編譯後的位元碼即可.
-------------
-------------
-------------
-------------
-------------
-------------
--
Java
“Compiler
” (x86)
Java
“Compiler
”
(PowerPC)
Java
“Compiler
”
(SPARC)
.class
Java
Interpreter
(X86)
Java
Interpreter
(PowerPC)
Java
Interpreter
(SPARC)
Java.exe
Java Bytecode
Platform independent
Javac.exe
Java Source
Code .java
建置開發環境
1.下載及安裝JDK(必要)
2.JRE 是執行程式的用戶端所需的執行環境, 內涵在JDK中
3.下載IDE(建議使用), 本課程使用Eclipse
4.下載或是直接網路瀏覽API Document
(有順序步驟性)
建置開發環境
建議螢幕操作到網站上說
認識整合開發環境
●如何編輯開發程式
o純文字編輯器
o整合開發環境
●整合開發環境特色
o自動精靈模式開啟專案
o視覺化呈現目前開發現況
o自動標示語法錯誤
o提示功能
o編譯測試
認識整合開發環境
1.開啟Eclipse
2.開啟Java新專案
a.File → New → Java Project, 或是
b.在Package Explorer視窗中, 滑鼠右
鍵後File → New → Java Project
3.在出現對畫框的Project Name中, 輸入專
案名稱
4.按下Finish即可
Hello, World!
基本語法與變數型別
註解方式
●目的: 增加原始碼的維護性及閱讀性
●單列註解
o以連續兩次的斜線符號表示註解的開始, 結尾至該列最後
oex. System.out.println(“Hello, World!”); // 在終端機中顯示字串
●區塊註解
o以 /* …… */ 所包住
o可以多列表示
oex. 右圖
基本語法與變數型別
●敘述句
o必須以分號(;)作結尾
o一列中可以多道敘述句
o一道敘述句中可分多列編寫, 但不可將完整的Word拆開(英文慣例)
oex. System.out.println("Hello, World!");
●程式區塊
o一或多道敘述句所構成
o以左右大括號表示出程式區塊
o{ …多道敘述句… }
o{ String name = "Brad";
System.out.println("Hello, " + name);}
基本語法與變數型別
●變數是用來存放變動性資料
●生活中:
o我的杯子倒入咖啡
變數名稱: 我的杯子
存放資料: 咖啡
●變數名稱命名原則
o不可以關鍵字或是保留字
o[a-zA-Z$_][a-zA-Z0-9$_]*
正確: MyName, $_$
不正確: 4Me, @Var
基本語法與變數型別
●語法
o資料型態 變數名稱;
o資料型態 變數名稱1, 變數名稱2, 變數名稱3 ...;
o變數名稱 = 值;
o變數名稱1 = 變數名稱2 = 值 ;
●宣告並同時給值
o資料型態 變數名稱 = 值;
o資料型態 變數名稱1 = 值1, 變數名稱1 = 值1;
基本語法與變數型別
基本語法與變數型別
●自動轉型
●強制轉型
基本運算
基本運算
比較關係值: boolean
●true
●false
if 基本語法結構
●基本語法結構
o單一: if (比較關係值) 單列敘述句 或 {程式區塊};
oif … else
if (比較關係值)
●單列敘述句 或 {程式區塊}
else
●單列敘述句 或 {程式區塊}
oif … else if … else
if 基本語法結構
if 基本語法結構
此段進行實體演練教學
switch 基本語法結構
基本語法結構
switch (變數){
case 比對值1:
…...
[break;]
case 比對值2:
…...
[break;]
default:
…...
}
switch 基本語法結構
switch 基本語法結構
此段進行實體演練教學
while 基本語法結構
語法結構:
while (邏輯判斷式){
…...
}
while 基本語法結構
此段進行實體演練教學
do...while 基本語法結構
語法結構:
do {
……
} while (邏輯判斷式);
do...while 基本語法結構
此段進行實體演練教學
for 基本語法結構
語法結構:
for (初始敘述句; 邏輯判斷式; 執行敘述句){
...... 重複執行程式碼
}
1.初始敘述句
2.邏輯判斷式; true --> 3; false --> 脫離迴圈結構
3.重複執行程式碼
4.執行敘述句
5.重複到 2
for 基本語法結構
此段進行實體演練教學
break & continue
break & continue
此段進行實體演練教學
陣列基本觀念
●用一個變數名稱來存放多個不同資料
oex. 四本書的書名
●第一個元素是從index值為0開始.
●陣列長度即為總元素個數
●一個長度為7的陣列, 其元素是從0到6為止
陣列宣告與建構
宣告
●int[] Array1;
●int Array2[];
給值(初始化)
●Array1 = new int[4];
●Array2 = new int[]{1,2,3,4};
宣告同時給值
●int[] Array3 = {1,2,3,4};
搭配的foreach迴圈結構
巡訪陣列所有元素
for (陣列元素型別 元素變數名稱 : 陣列變數名稱){
…...
}
多維陣列的應用
●一個陣列元素中, 其值為一個陣列, 延伸而形成多維陣列
●不一定是 n x m 的結構
●宣告方式:
oint[][] Array1;
oint[] Array2[];
oint Array3[][];

More Related Content

Similar to Java 基本程式設計

IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 JavaIKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java建興 王
 
Vulkan introduction
Vulkan introductionVulkan introduction
Vulkan introductionJiahan Su
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swttka
 
Jni攻略之十――操作Java虚拟机
Jni攻略之十――操作Java虚拟机Jni攻略之十――操作Java虚拟机
Jni攻略之十――操作Java虚拟机yiditushe
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Kris Mok
 
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)ddviplinux
 
高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查bluedavy lin
 
Java 1(Java概述)
Java 1(Java概述)Java 1(Java概述)
Java 1(Java概述)xzdbd
 
介紹前端 Web 技術在跨平台開發上的應用
介紹前端 Web 技術在跨平台開發上的應用介紹前端 Web 技術在跨平台開發上的應用
介紹前端 Web 技術在跨平台開發上的應用Jerry Lin
 
Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]yiditushe
 
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure National Cheng Kung University
 
Ezilla
EzillaEzilla
Ezillahs1250
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Jeff Chu
 
关于服务器虚拟化的测试汇报
关于服务器虚拟化的测试汇报关于服务器虚拟化的测试汇报
关于服务器虚拟化的测试汇报博 孟
 
Shell,信号量以及java进程的退出
Shell,信号量以及java进程的退出Shell,信号量以及java进程的退出
Shell,信号量以及java进程的退出wang hongjiang
 

Similar to Java 基本程式設計 (20)

IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 JavaIKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
 
LLVM introduction
LLVM introductionLLVM introduction
LLVM introduction
 
系統程式 -- 第 9 章
系統程式 -- 第 9 章系統程式 -- 第 9 章
系統程式 -- 第 9 章
 
Vulkan introduction
Vulkan introductionVulkan introduction
Vulkan introduction
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
Jni攻略之十――操作Java虚拟机
Jni攻略之十――操作Java虚拟机Jni攻略之十――操作Java虚拟机
Jni攻略之十――操作Java虚拟机
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
 
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)
 
高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查
 
Java 1(Java概述)
Java 1(Java概述)Java 1(Java概述)
Java 1(Java概述)
 
介紹前端 Web 技術在跨平台開發上的應用
介紹前端 Web 技術在跨平台開發上的應用介紹前端 Web 技術在跨平台開發上的應用
介紹前端 Web 技術在跨平台開發上的應用
 
Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]
 
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
 
專題-2017Linux Driver 實現
專題-2017Linux Driver 實現專題-2017Linux Driver 實現
專題-2017Linux Driver 實現
 
Ezilla
EzillaEzilla
Ezilla
 
Java - TA課 - 開發環境
Java - TA課 - 開發環境Java - TA課 - 開發環境
Java - TA課 - 開發環境
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
 
关于服务器虚拟化的测试汇报
关于服务器虚拟化的测试汇报关于服务器虚拟化的测试汇报
关于服务器虚拟化的测试汇报
 
Shell,信号量以及java进程的退出
Shell,信号量以及java进程的退出Shell,信号量以及java进程的退出
Shell,信号量以及java进程的退出
 
Jni文档
Jni文档Jni文档
Jni文档
 

More from Brad Chao

Java_07:Thread
Java_07:ThreadJava_07:Thread
Java_07:ThreadBrad Chao
 
Java_06:Collection
Java_06:CollectionJava_06:Collection
Java_06:CollectionBrad Chao
 
Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Brad Chao
 
Java_04:例外異常處理機制
Java_04:例外異常處理機制Java_04:例外異常處理機制
Java_04:例外異常處理機制Brad Chao
 
Java_03:進階物件導向觀念
Java_03:進階物件導向觀念Java_03:進階物件導向觀念
Java_03:進階物件導向觀念Brad Chao
 
Java_02:初探物件導向程式設計
Java_02:初探物件導向程式設計Java_02:初探物件導向程式設計
Java_02:初探物件導向程式設計Brad Chao
 
Java Basic(1)
Java Basic(1)Java Basic(1)
Java Basic(1)Brad Chao
 

More from Brad Chao (8)

Java_08:SQL
Java_08:SQLJava_08:SQL
Java_08:SQL
 
Java_07:Thread
Java_07:ThreadJava_07:Thread
Java_07:Thread
 
Java_06:Collection
Java_06:CollectionJava_06:Collection
Java_06:Collection
 
Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制Java_05:檔案輸出輸入機制
Java_05:檔案輸出輸入機制
 
Java_04:例外異常處理機制
Java_04:例外異常處理機制Java_04:例外異常處理機制
Java_04:例外異常處理機制
 
Java_03:進階物件導向觀念
Java_03:進階物件導向觀念Java_03:進階物件導向觀念
Java_03:進階物件導向觀念
 
Java_02:初探物件導向程式設計
Java_02:初探物件導向程式設計Java_02:初探物件導向程式設計
Java_02:初探物件導向程式設計
 
Java Basic(1)
Java Basic(1)Java Basic(1)
Java Basic(1)
 

Java 基本程式設計