1. 程式人生 > >JAVA面向物件學習筆記(1)

JAVA面向物件學習筆記(1)

1.Static關鍵字

  特點: 1.一個類的多個物件共享,節省資源空間

               2.隨著類的載入而載入

               3.可以通過類名呼叫

注意事項:

             1.靜態方法不可以訪問非靜態變數(因為靜態方法是隨著類的載入而載入,有可能呼叫靜態方法的時候,還沒有建立物件,非靜態變數就載入不進來,導致錯誤)

              2.非靜態方法既可以訪問非靜態的,也可以訪問靜態的。

靜態變數和成員變數的區別

             A:所屬不同

                    *靜態變數屬於類,所以也叫類變數

                    *成員變數屬於物件,也叫物件變數或例項變數

            B:記憶體中位置不同

                   *靜態變數儲存於方法區的靜態區

                   *成員變數儲存於堆記憶體

           C:記憶體中出現的時間不同

                   *靜態變數隨著類的載入而載入,隨著類的消失而消失

                   *成員變數隨著物件的建立而存在,隨著物件的消失而消失

           D:呼叫不同

                   *靜態變數可以通過類名呼叫,也可以通過物件呼叫

                  *成員變數必須由物件呼叫

 

2.main方法(主方法)格式解釋

程式碼例項:class demo {

                         public static void main(String[] args){

                                     }

                                          }

解釋: 1.public 被jvm呼叫,訪問許可權大一些好

             2.static 被jvm呼叫,不需要建立物件

             3.void 被jvm呼叫,不需要有任何返回值

             4.main 這樣寫才能被jvm識別,main不是關鍵字

             5.String[] args 接收命令列引數的(dos下傳入引數)

 

3.面向物件三大特性

封裝

·         封裝給物件提供了隱藏內部特性和行為的能力。物件提供一些能被其他物件訪問的方法來改變它內部的資料。JAVA中,修飾符有三種,public,private和protected.每一種修飾符給其他位於同一包中或不同包中的物件設定了不同的訪問許可權。

·        好處: ①通過隱藏物件的屬性來保護物件內部的狀態 ②提高了程式碼的可用性和可維護性,因為物件的行為可以被單獨的改變或者是擴充套件 ③禁止物件之間的不良互動提高模組化

多型

·        多型是程式語言給不同底層資料型別做相同的介面展示的一種能力,一個多型型別上的操作可以應用到其他型別的值上面

繼承

·        繼承給物件提供了從基類獲取欄位和能力的方法。繼承提供了程式碼的重用性。也可以在不修改類的情況下給現存的類新增新特性,但是提高了類的耦合性。

特點:JAVA只支援單繼承,不支援多繼承。

注意事項:a:子類只能繼承父類所有的非私有成員(成員方法和成員變數)(相同成員變數就近原則)

                    b:子類不能繼承父類的構造方法,可以通過super關鍵字去訪問父類構造方法

                    c:為了部分功能去繼承不值得

抽象

·        抽象是把想法從具體的例項中分離出來的思想,因此,要根據他們的功能而不是實現細節來建立類,Java支援建立只暴露介面不包含方法實現抽象的類。這種抽象技術的主要目的是把類的行為和實現細節分離開。

抽象和封裝的異同

·        抽象和封裝是互補的概念,抽象關注物件的行為。另一方面,封裝關注物件行為的細節。一般是通過隱藏物件內部狀態做到封裝,封裝可以堪稱是用來提供抽象的一種策略