面向對象_構造函數_this

面向對象
        是一種對現實世界理解和抽象的方法
        思想:由複雜變簡單,有執行者轉換爲指揮者
               
1、面向過程:打開、存儲、關閉

2、三個特徵:封裝、繼承、多態

3、        定義類,就是在描述事物,就是在定義屬性和行爲,屬性和行爲共同成爲類

中的成員(成員變量和成員方法)
        屬性對應是類中變量,行爲對應的是類中的函數

4、成員變量和局部變量
        1)成員變量作用於整個類中
           局部變量作用於函數中,或者語句中
        2)在內存中的位置
           成員變量:在堆內存中,因爲對象的存在,纔在內存中存在
           局部變量:存在棧內存中

5、匿名對象:適用於調用外函數時,定義
        例:new car().num=1;
            new car().color=red;
            new car().run();   //共匿名定義了三個對象

6、封裝 Encapsulation

7、構造函數的作用:可以用於給對象進行初始化
           小細節:當一個類中沒有定義構造函數時,系統會默認給該類加入一個構造函數。
   
8、構造函數和一般函數在寫法上有不同

   構造函數是在對象已建立就運行,給對象初始化。
   而一般方法是對象調用執行,給是對象添加對象具備的功能

   在運行上也有不同。

   一個對象建立,構造函數就執行一次
   而一般方法可以被該對象調用多次。

9、什麼時候定義構造函數?
   當分析事務時,該事物存在具備一些特性或者行爲,那麼將這些內容定義在構造函數中。

10、構造代碼塊
class car
{
        private String name;
       
        {
                system.out.println("123")
        }//構造代碼塊
}
        作用:給對象進行初始化。
        對象已建立就運行,而且優先於構造函數執行。

        和構造函數的區別:
        構造代碼塊是給所有對象進行統一初始化的。
        而構造函數是給對應的對象初始化

        構造代碼塊中定義的是不同對象共性的初始化內容。

11、this:看上去,是用於區分局部變量和成員變量同名情況
    1)
    this爲什麼可以解決這個問題?

    this到底代表的是什麼?
        這個對象
    2)
    this代表它所在函數所屬對象的引用
    簡單說:哪個對象在調用this所在的函數,this就代表哪個對象

    3)this的應用:當定義類中功能時,該函數內部要用到調用該函數的對象時,這時用this來表示這個對象
class car
{
        public boolean compare(car c)
        {
                if(this.color==c.color)//this->c1,c->c2
                {}
        }
}
...
car c1=new car();
car c2=new car();
boolean b=c1.compare(c2);
      
    4)this語句:用於構造函數之間進行互相調用
      this語句只能定義在構造函數的第一行,因爲初始化要先執行。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章