java基礎學習——對象和類

對象和類

首先說一下結構化程序的缺陷:
(1)缺乏對數據的封裝
(2)數據和方法的分開

抽象數據類型:將不同類型的數據的集合組成一個整體來描述一個新的事物

一,什麼是類?
1.現實世界中是由對象組成的,基於這些對象,抽出了類。
2.類:類型,類別,代表一類個體,對象:獨立的個體
3.類是一種數據類型(引用類型)。
4.類中可以包括:
                          (1)所有對象所共有的屬性——變量
                          (2)所有對象所共有的方法——方法
5.一個類可以創建多個對象,同一個類創建的對象,結構相同,數據不同。
6.類是對象的模板,對象是類的實例。

二,定義類的成員變量
1.類的定義包括”成員變量“的定義和”方法“的定義,其中成員變量用於描述改類型對象共同的數據結構。
2.java語言中,類的成員變量的定義可以使用如下語法:
                                           class  類名  {
                                               成員變量類型  變量名稱;
                                               }
3.對象創建後,其成員可以按照默認的方式初始化。
4.初始化對象成員變量時,器默認值的規則如下所示:

                                                            成員變量類型                                        默認初始值
                                       數值類型(byte,short,int,long,double,float)                       0
                                                               boolean                                               false
                                                               char型                                                 /u0000
                                                               引用類型                                                null

三,定義類的方法
1.類的方法:用於描述對象的行爲,封裝對象的功能。
2.java語言中可以按下列方式定義類的方法
                                                         class 類名 {
                                                    修飾詞  返回值類型   方法名稱(參數列表)  {
                                                               方法體 ;  
                                                                               }
                                                                     }

四,使用new關鍵字創建對象
1.類定義完成後,可以使用new關鍵字創建對象,創建對象的過程成爲實例化。
2.new運算的語法爲: new  類名();
3.引用類型變量:爲了能夠對實例化的對象進行訪問控制,需要使用一個特殊的變量——引用
      (1)引用類型變量可以存放該類對象的地址信息,通常稱爲”指向該類的對象“;當一個引用類型變量指向該類的對象時,就可以通過這個變量對對象實施訪問。
      (2)除8種基本類型外,用類,接口,數組等聲明的變量都稱之爲引用類型的變量,簡稱”引用“;

五,引用類型變量的賦值
1.引用類型變量存儲的是對象的地址信息,相同類型的引用變量之間也可以相互賦值。
2.引用類型變量之間的賦值不會創建新的對象,但有可能會使兩個以上的引用指向同一個對象。
                                                               Cell  c  =  new  Cell();
                                                                 類  引用            對象
                                                                   class   Cell{
                                                                    int   row;
                                                                   int    col;
                                                                          }
                                                                  Emp  el = new  Emp();
                                                                  Emp e2 = e1;    //將e1的值(對象的地址信息)賦給e2,e2和e1指向相同的對象

六,null和nullPointerException
1.對於引用類型變量,可以對其賦值爲null,null的含義爲”空“,表示指向任何對象。
                                   例,Emp   emp = null;     //引用emp中的值爲null,沒有指向任何對象
                                              emp  = new  emp();     //  用emp指向Emp對象。
2.當一個引用的值爲null的時候,如果通過引用訪問對象或成員變量或者調用方法是不合邏輯的,此時會產生nullPointerException
                                                                例:Jframe  frame = null ; 
                                                                         frame.setSize(200,300);
                 "空"代表不再指向任何對象。

七,方法的前面與重載
1.方法的簽名包含兩個方面,方法名和參數列表。
2.一個類中,不可以有兩個方法的簽名完全相同,哪一個類中不可以有兩個方法的名字和參數列表完全一樣
3.如果一個類的兩個方法只是方法名相同而參數列表不同,即爲重載,是可以的。
4.在java語言中,允許多個方法的名稱相同,但參數列表不同,稱之爲方法的重載。
5.編譯器在編譯時會根據簽名來綁定調用不同的方法,我們可以把重載的方法看成是完全不同的方法,只不過方法名相同而已。
6.Java中重載時,方法名相同,只能爲參數類型不同,與返回值,參數名無關。

八.構造方法。
1.常常用於給成員變量賦初值。
2.與類名相同,沒有返回值,也不能寫void
3.在創建對象時被自動調用。
4.若自己不寫構造方法,則編譯器默認提供一個無參構造方法,若自己寫了構造方法,則編譯器不再默認提供無參構造方法。
5.構造方法可以重載
          語法:
                                         【訪問修飾符】  類名(){
                                                                      //  構造方法體
                                                             }

九,this的用法。
1.this指代當前對象,那個對象調用就是那個對象。
2.在方法中訪問成員變量,默認有個this,在沒有歧義情況下可以省略this。
3.this.成員變量名——訪問成員變量                     this.方法名——調用方法                  this.()——調用構造方法
4.成員變量和局部變量可以相同。
5.在構造方法中,用來初始化成員變量的參數一般和成員變量去相同的名字,這樣有利於代碼的可讀性,但此處就必須通過this關鍵字來區分成員變量和參數(不能省略this)
               例:                        
                                                public  Cell(int row,int col) {
                                                          this.row = row ; 
                                                          this.col = col ;
                                                          }

十.數組的引用
1.在java中,數組屬於引用數據類型。
2.數組對象在堆中存儲,數組屬於引用類型,存儲數組對象的地址信息,指向數組信息。
3.數組的元素可以看成數組對象的成員變量(只不過類型全部相同)
                         int [] arr = new int [2] ;    
                                     棧                        堆
                                                                int [] 
                                   arr[0]                       0
             arr 0×50       arr[1]                       1
                                   arr[2]                        2
4.引用類型數組的聲明,數組的元素可以是任何類型,當然也可以包括引用類型
5.引用類型數組的初始化
       (1)引用類型數組的默認值爲null
       (2)如果希望每一個都指向具體的對象,需要針對每一個數組元素進行”new“運算。
6.數組的類型是基本類型數組。
        (1)數組的元素可以爲任何類型,也包括數組類型。
              例:  int [][] arr = mew int [2][2];       arr  [0] = new int [2];      arr [1] = new int[3];
              解釋:arr指向一個數組,該數組有2個元素,每個元素都是int類型數組,長度分別爲 2,3。
        (2)當元素爲數組的數組,且每個元素的長度相同時,在其他語言有專門的這種結果成爲二維數組,但嚴格來說在java語言中沒有正真的二維數組
                                             例:
                                                               int [] [] arr = new [2][2];
                                                               for(int i=0;i<arr.length;i++){
                                                                         for(int j=0;j<arr[i].length;j++){
                                                                                  arr[i][j] = 0;
                                                                       }
                                                                 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章