類別(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




文章標籤
全站熱搜
創作者介紹
創作者 evae102 的頭像
evae102

evae 五四三

evae102 發表在 痞客邦 留言(0) 人氣(27)