類別(type):樣板(型別),描述此型別的物件所支援的state(狀態變數)、behavior(行為函式)---class interface
物件(object):runtime 遇到 new 關鍵字製造一個物件實體(instance),有自已的狀態(變數)、可執行定義的行為(函式)
狀態(instance variables):state 實體變數 ,一個類別的實體(物件)擁有自已唯一一組實體變數的值
行為(method):behavior 函式, 類別的函式,儲存邏輯的地方,執行演算法和處理資料的地方
合法識別字
1.第一個字元:貨幣符號($)、底線(_)、字母
2.其他字元 :貨幣符號($)、底線(_)、字母、數字
3.除了關鍵字:
程式流程控製-do while if else for goto switch case break continue return throw throws try catch finally
資料型態設定-double float int long short boolean byte char
物件特性宣告-synchronized native import public class static abstract private void extend protected default implements interface package enum
其他功能 -this new super instanceof assert const strictfp volatile transient final
PS**null true, flase 不是關鍵字...而是manifest constant 我得到的翻譯叫"定值"
4.有大小寫區分
原始檔的宣告規則
1.只能有一個 public 類別,檔名必須和此 public 類別名稱一樣 public class Dog{} Dog.java
2.package 陳述式必須出現在第一行 0~1
3.import 陳述式必須在類別宣告之前 0~*
類別宣告和修飾子
存取修飾子(access modifiers):public > protected > package(預設) > private
1.類別只能用 public package
2.類別的存取 a 建立實體 b 繼承類別 c 類別內的函式、變數的存取控制
3.package 同套件可見
非存取修飾子(Non-access modifiers):strictfp final abstract
1.final abstract 不行、不可以混用
2.strictfp (類別、函式) 不能用在變數上 ,浮點數符合IEEE 754標準
3.final 類別不可被繼承(編譯錯誤),沒有函式可再被override、沒有人可變更它們的實作ex String
4.abstract 永遠不可被 instantiaded(編譯錯誤) ,只能被繼承(擴充),abstract 函式以分號結尾
宣告介面 (interface)
1.定義一份合約,百分之百的 abstract 類別,可繼承多個其他介面(不能實作介面)
2.介面函式一定是 "public abstract " ,不能是"static" 、"final"、"strictfp"、"native"、"private"、"protected"
3.介面變數一定是 "public static final " ==>只能宣告常數,介面類別存取同一份常數
4.public abstract interface Rollable { } ===> 相等 <=== public interface Rollable { }
宣告類別成員(class members)
1.函式、實體變數(非區域)
2.存取成員修飾子:是否可存取(句點運算子) 是否可繼承
public > protected > package(預設) > private
a. private 可宣告同父類別名稱函式,但不是覆寫(exception、回傳型態等不受限)
b. package 同一套件內可見 protected 可被子類別存取(不同套件亦可)
c. 存取修飾子不可用在區域變數除了final(編譯錯誤)
3.非存取成員修飾子:
transient、synchronized 、 native 、 strictfp 、 static
a. final 引數(arguments) ex..Record getRecord(final int fileNumber ){} fileNumber不可被修改
b. 第一個抽象類別的具象子類別(concrete subclass),必預實作(覆寫)父類別抽象函式(abstract method)
c. abstract + final(XX) abstract + private(XX) abstract + static(XX)
d. synchronized(只能被一個執行緒(thread)存取) 、native(省略實作 以分號結尾) 只有函式
e. strictfp 函式、類別
f. var-args 基本型別 物件型別、 int... x、最後一個參數、一個函式只能有一個
g. constructor 最少有一個(default) 不能有回傳型別 不能是static 、final 、abstract
- 9月 12 週三 200722:41
[SCJP] CHAPTER 1 宣告和存取控制
文章標籤
全站熱搜
