物件導向程式設計– 實習課

Download Report

Transcript 物件導向程式設計– 實習課

物件導向程式設計 – 實習課
1
助教:黃煒勛
本周進度
Java的三種版本
 Java特性
 相關用語
 程式進入點
 程式類別
 存取等級
 建構子
 基本八大型別
 Java關鍵字

2
JAVA的三種版本
版本
應用
相關證照
Java SE (Standard Edition)
桌上型
SCJP
Java EE (Enterprise
Edition)
Web應用程式
SCWCD
Java ME (Micro Edition)
手機game、PDA
SCMAD
3
JAVA特性

跨平台 (跨作業系統)
xxx.java
編譯
(javac)
原始碼
Windows編譯時期
xxx.class
執行
(java)
JVM
位元碼
Linux、mobile、mac、PDA
執行時期
4
相關用語
名詞
解釋
JVM
Java的虛擬機器
JRE
JVM+Java核心程式庫
JDK
JRE+Java開發工具
API
Application Programming Interface
5
程式進入點(ENTR POINTER)
備註1
修飾字
public、static
回傳型別
void
名稱
main
參數
String[]
必需要有才可以
compiler
備註2
程式compiler時,
會找出這些規則,
並將其判定為
「主方法」
範例:public static void main(String[] args)
此為固定寫法,請同學務必熟記!!
6
程式類別(CLASS)

class:


在java世界中,即為類似API的存在,以往在c的時後,
平常會將function都寫在main的程式中,在Java中,
為了方便管理,會將function分門別類,將同一類型或
功能相似的function寫成一個class。
類別(class)主體:
格式:[修飾字] class [類別名稱]
 範例:public class MyFirstClass{}


類別中的方法(function)主體:
格式:[修飾字] [回傳型別] [方法名稱] [參數]
 範例:public void saySomething(String str){}

7
程式類別(CLASS) – 續

類別(class)名稱「命名規則」:
第一個字可為:$、_、字母、
 第二個字可為:$、_、字母、數字
 範例:public class $abc{}、public class _123{}
 備註:

此處的「$」、「_」是特例,其他特殊符號皆不可,而「$」可為
各國語言,如日文中「 ¥」、歐文中「£」皆可。
 此處的字母可為各國字母皆可 。


注意<<證照考題>>
「檔名」和類別主體中的「類別名稱」一樣。
 一個程式可以有很多「class」類別(當API涵式庫用),但
一個程式只能有一個「public class」(主程式main使用)

8
存取等級
+ : public
#:protected
:[default]
-:private
9
建構子(CONSTRUCTOR)

實例化過程中,第一個必定被執行的方法。

建構子通常用來:



撰寫物件的初始程序
指定物件所需的變數資料
建構子的撰寫:
名稱和類別相同。
 沒有retrun type的宣告區。
 在同一類別中,能撰寫多個建構子(稍後會提overloading)。


預設建構子:
無任何自訂建構子時,compiler會自動建立。
 沒參數。
 存取等級和class一致。

10
建構子(CONSTRUCTOR) – 續

範例:

預設建構子:


public myFirstConstructor(){} // 無參數即為預設建構子,可寫可不寫
多個建構子(overloading):
public myFirstConstructor(int a){}
 public myFirstConstructor(float a){}
 public myFirstConstructor(double a){}
 public myFirstConstructor(String a){}
 備註:
 多個建構子時,其function名稱必需相同,唯有傳入的參數必需不同。

11
基本八大型別:
分類
整
數
浮
點
其
他
保留字
名稱
Byte
byte
位元組
1
-128~127
short
智整數
2
-32,768~32,767
int
整數
4
-2,147,483,648~2,147,483,647
long
長整數
8
float
浮點數
4
double
倍精數
8
char
字元
2
\u0000~\Uffff
boolean
布林值
2
true,false
有效範圍(有印像就好,不需背…)
-9,223,372,036,854,775,808~
9,223,672,036,854,775,807
負值-3.402823E38~-1.401298E-45
正值1.401298E-45~3.402823E38
負值-1.797693134E3.8~4.9406564584124E-324
正值4.94.6564584E-324~1.797693134862E308
12
備註:字串類別(請注意, 是類別而非型態): String
JAVA關鍵字
以下關鍵字,請勿拿來宣告使用!!
abstract
assert
break
byte
boolean
catch
class
const
continue
case
char
do
default
double
enum
extends
else
for
false
final
finally
float
goto
interface
if
implements
import
int
instanceof
long
native
new
null
static
synchronized
switch
strictfp
short
super
true
try
void
this
throw
throws
protected
transient
while
return
volatile
private
public
package
13