面向對象(一)

1. 構造器:
構造器是一個類創建對象的根本途徑,如果一個類沒有構造器,則不能通過 New關鍵字去創建對象,Java系統爲每一個類提供了一個默認的構造器,構造器用於對類的實例進行初始化的操作。默認構造器是無參的,如果開發者在類中手動定義了構造器,則默認構造器失效,不能再次被調用。

構造器是有返回值的,當使用new關鍵字調用構造器生成一個對象的時候,構造器返回該類的實例,構造器的返回值是隱式的,不用專門去定義構造器的返回類型。

2. static 關鍵字:

首先需要明確的是, static 關鍵字屬於類本身,不屬於對象,不屬於該類的單個實例,調用的時候只能通過類去調用。

沒有使用 static修飾的只能通過對象來調用,屬於該類的單個實例,不屬於該類。

用static關鍵字的本質就是用來標識是屬於類本身還是屬於該類的實例對象,如果屬於類本身(即用static修飾),則不管new多少個實例,都只有一個static成員,操作的也只是這一個成員。

 

3. this 關鍵字:

this關鍵字代表調用該方法的對象,注意,是一個對象,this的出現都代表的是對象,即某一個類的實例。

this根據調用位置的不同,分爲以下兩種:

(1)在構造器中引用該構造器正在初始化的對象

(2)在方法中引用調用該方法的對象

this的作用是讓類中的一個方法,訪問該類中的另一個方法或者實例變量。當this出現時,它所代表的的類是確定的,就是它當前所在的類,但是它所代表的對象是不確定的,只有當該方法被調用(被實例化),this所代表的對象才被真正確定下來。

4. static不能和 this 一起使用?

this在使用的時候,必須有對象,也就是說必須先創建對象,this關鍵字纔有意義

而static關鍵字是屬於該類的,可以使用類來直接調用方法,如果在static修飾的方法中用this關鍵字,則this關鍵字無法指向合適的對象,所以兩個關鍵字不能一起使用。

這也是爲什麼 static 方法不能調用 非 static 方法的原因:

非static方法是屬於對象的,不屬於類,調用的時候只能通過對象去調用,必須有合適的對象,而static方法是屬於類的,在static方法中調用非static方法,非static方法無法找到合適的對象,所以不能用。

5. 變量分爲 成員變量 和 局部變量

成員變量指的是在類中定義的變量,局部變量指的是在方法中定義的變量。

成員變量包括 實例變量和類變量,類變量指的是用 static 修飾的變量,實例變量指的是非 static 修飾的變量。不用顯示初始化,系統默認初始化。

局部變量包括形參,方法局部變量和代碼塊局部變量,必須顯示初始化,否則不可訪問。

局部變量保存在棧內存中,和堆沒有關係,不用進行垃圾回收。

局部變量的範圍越小,對性能的消耗就越小,能用代碼塊局部變量是最好的處理方式。

 

6. Person()   p   =   new Person()

p是引用,在棧中保存, Person是對象,在堆中保存,垃圾回收機制主要是回收堆中的對象。

待更。。。。。。。。。

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