Java基本概念-類和對象

1 對象:萬事萬物皆對象,對象有狀態(本身固有的屬性)和行爲(什麼樣的功能,能力)
2 類:相同狀態,相同行爲的一組對象的集合,是對象的概念模板
3 類的定義(類中只有屬性和方法):狀態(屬性,變量),行爲(方法)
  類定義的語法:[類修飾符] class  類名{類體}
4 成員變量:定義在類中的變量,成員變量必須一個一個定義,不能連續定義,類中的變量直接包含在類體內,方法中的變量不是類的變量
   局部變量:定義在方法中的變量,可以連續定義
5 對象實例化:類名 對象名=new 類名()
   對象的引用:對象名.屬性名(參數)          對象的引用指向對象的實例
6 this:方法中使用成員變量時可以使用,表示當前類的當前對象,當前對象的引用

 this.屬性名,this.成員方法名(參數):this表示調用本屬性(方法)的對象

一 面向對象編程
 
 1 面向對象分析(OOA)
 
 2 面向對象設計(OOD)
 
 3 面向對象分析與設計(OOAD)
 
 4 面向對象編程(OOP)
 
二 方法重載(overload):繼承關係中也可以重載(設計時多態)
 
 1 方法重載是指同一類中定義的多個方法中,各方法的方法名相同,方法參數不同(個數,順序,類型)
 
 2 方法重載與返回值無關,與參數名稱無關
 
 3 調用時,根據參數匹配原則,由Java程序自動調用對應的方法
 
三 封裝
 
 1 封裝是指對代碼的一種保護作用,限制類成員可以在什麼範圍被訪問(賦值和取值)
 
 2 通過訪問修飾符實現封裝
 
 3 控制成員的訪問修飾符有:
 
    public:公有的,任何地方都可以被訪問
 
    成員前不加任何修飾符:默認的,同包中可以被訪問
 
    private:私有的,只能在當前類中被訪問
 
    protected:受保護的,同胞和子類中可以被訪問(專爲繼承設計)
 
 4 屬性訪問器:使得其他成員通過公有方法訪問私有屬性
 
   set/get方法:set:賦值方法
 
                          get:取值方法
 
   set,get同時使用,既可以賦值私有屬性,也可以對私有屬性取值
 
   只有set方法時,只寫屬性,只能對私有屬性賦值
 
   只有get方法時,只讀屬性,只能對私有屬性進行取值
 
 5 一個類文件中只能有一個public類,不能有多個,public類的類名必須與文件名一致
 
四 繼承
 
 1 繼承的好處:簡化類的設計
 
 2 使用extends關鍵字實現,子類自動繼承父類所有的屬性和方法(構造方法除外)
 
 3 Java是單繼承的,任何一個類都只有一個直接父類,沒有直接父類的類默認繼承Object類
 
 4 Java中的所有類都 直接或間接繼承Object類
 
 5 子類繼承父類後,new子類時,父類也new了
    
 6 new子類時,先調用子類的構造方法,再調用父類構造函數
 
   運行時,先運行父類的構造方法,再運行子類的構造方法
 
 7 方法重寫(override),子類繼承父類後,發現從父類繼承的方法不能滿足子類的需要,子類可以重寫定義該方法,封裝不能變小
 
 8 方法重寫就是將原來父類中定義的方法覆蓋掉 父類中的方法是無參的,重寫的方法與父類中無參方法名相同
 
 9 子類的構造函數中用super()調用父類無參的構造函數,用super(參數名1,參數名2)調用父類有參的構造函數  
 
 10 使用super關鍵字時,要講super()語句放在子類構造方法的最前面
 
 11 屬性在哪個類定義的,就在哪裏賦值(初始化)
 
 12 this和super:this調用子類自己的
                  
                 super調用父類的



默認值
1 方法中的變量沒有默認值
2 類的屬性中:引用類型的默認值是null
                          基本類型中,int long byte short的默認值是0,double float的默認值是0.0,char的默認值是\0,boolean的默認值是false 

構造方法(構造函數)
1 構造方法的特徵:方法名和類名相同,沒有返回值,不寫void
2 構造方法不允許使用對象對其調用
3 構造方法的作用:爲正在創建的對象的屬性初始化
4 構造方法是在實例化對象時自動調用
5 不定義構造函數時,類自己有默認的無參的構造函數;定義構造函數時,系統默認的構造函數就沒有了
6 調用構造函數:(1)對象實例化(new)時;(2)super
7 對象實例化中調用函數時參數傳值與構造函數中的參數類型需要一 一對應


1 包的命名不能以數字開頭,應該是小寫字母
2 包相當於一個目錄,包中的類相當於文件
3 jcl:Java類庫
4 導包用的關鍵字是:import
   導入一個包中的一個類:import 包名.類名;
   導入一個包中的所有類:import 包名*;

 static
1 類的成員包括被static修飾的靜態成員(屬性和方法)和實例成員(屬性和方法)
2 實例成員是在new時才分配內存的,分配在堆中,new一次就分配一次內存,new多次就分配多次,由對象名來調用
   類成員是在類第一次加載時分配內存的,分配在系統全局區中,只分配一次內存,由類名來調用,也可以有對象名來調用
3 在系統全局中分配內存的有靜態的量和字面量
4 方法中的局部變量不能使用static修飾,因爲局部變量是對象的方法中的變量,而static所修飾的成員是爲類提供的
5 靜態成員也叫類成員,靜態變量不依賴對象存在,而實例變量依賴對象而存在,必須先實例化對象,再使用實例變量
6 靜態方法在同一類中調用時,類名可以省略
7 靜態方法:可以直接調用靜態變量和靜態方法,訪問實例變量和實例方法時,必須先new對象,new完之後再調用,不能使用this
   實例方法:同一個類中可以直接調用實例變量和實例方法,也可以通過類名.靜態方法名 (參數),類名.靜態變量名調用靜態成員,可以使用this
8 實例變量是爲對象準備的,靜態變量是爲類準備的

發佈了44 篇原創文章 · 獲贊 1 · 訪問量 9945
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章