標籤:今天 init 互相調用 初始化代碼塊 數列 成員 無法 私人化 開始
這一周學習的還是物件導向的方法和應用
Java中方法的使用和注意事項
- 如果沒有傳回值,就不允許通過return關鍵字返回結果
- 方法中不允許嵌套使用
- Return傳回值只允許返回一個值,不允許返回多個
- 邏輯代碼不能寫在方法的外面
- 一個類中允許出現兩個相同的方法名,但是參數不能相同
方法的重載
指的是方法名一致,參數的類型不一致或者參數的個數不一致,參數類型的位置不一致,或者傳回值類型不一致的定義方法
方法的重載可以提高編程效率
對象編程和面向過程編程
物件導向編程的好處:
1.更接近人類的一個思維方式
2.可以隱藏某些資訊,提高程式的可維護性和安全性。
3.提高了程式的重用性。
面過程和物件導向的區別:
面向過程側重於執行的過程。
物件導向側重於結果,通過對象來擷取到最終的結果。
成員變數: 類的屬性,定義在類裡面方法的外面
成員變數的範圍:從定義的位置開到整個類中都可以使用。
成員變數如果你沒有賦值,會預設給你賦值:
成員變數可以在定義的時候就賦值。
成員變數的作用:用來描述一個類的公有屬性。
成員變數的生命週期: 成員變數在對象被建立出來的時候才被建立,對象什麼時候消失,成員變數就什麼時候消失。成員變數的生命週期是和對象綁定在一起的。
局部變數: 定義在方法的內部
局部變數範圍:在他所在的方法中有用,從定義的位置開始,到方法的結束。
局部變數是沒有有預設值得,你要想使用局部變數就必須給局部變數賦值
局部變數的作用: 在方法中定義一個變數給方法使用。
局部變數的生命週期: 在方法被調用時建立出來,局部變數在出了範圍就消失
局部變數的使用注意點:
1.再同一個範圍中不允許出現兩個同名局部變數。
2.在不同方法中是可以出現同名的局部變數
3.在同一個類中是允許成員變數和局部變數同名
Java 匿名對象
概念:匿名對象指的就是沒有名字的對象
格式:new 類名 ();
匿名對象的作用:
- 調用一次某個對象的方法
- 可以作為實參來傳遞,簡化代碼
使用注意點;
- 匿名對象是不能用來操作對象屬性
- 匿名對象是無法擷取對象的屬性
Java 物件導向的特徵
- 封裝
- 繼承
- 多態
一,封裝
封裝的使用步驟:
1.用private修飾符來修飾這個屬性或者行為,將屬性或者行為隱藏起來。
2.需要通過本類中提供操作的方法,公開一個 set方法和get方法,一般用public來修飾
不一定都是需要設定get和set方法,一般都是用set和get方法。
封裝的好處:
1.提高代碼的安全性。
2.簡化代碼。
3.便於維護代碼。
許可權修飾符: 可以將屬性和行為隱藏起來,只允許許可權內的人能夠訪問。
public : 公開的,公用的。許可權最大,任何人都可以來進行訪問。
private : 私人的 許可權最低,只允許在本類中進行訪問
沒有定義的許可權的預設的 default 比public要小一些允許所有的人來訪問它
構造方法
構造方法的作用: 初始化對象。初始化對象就是給屬性賦值。
構造方法的定義格式: public 類名(參數列表){}
構造方法的特點:
1.方法名和類名是一致的。
2.構造方法沒有傳回值的。
構造方法的使用注意事項:
1.構造方法不能夠由我們自己調用,他是jvm建立對象時調用的。
2.構造方法只能被調用一次。
3.如果類中沒有定義構造方法,jvm會在編譯的時候給你添加一個無參的構造方法。
4.如果類中已經定義了構造方法,jvm就你不會為你建立無參的構造方法。這個時候就需要通過指定的構造方法來建立對象。
5.構造方法可以通過重載的方式,定義多種形式的構造方法。
Java代碼塊分類
- 構造代碼塊(初始化代碼塊)
- 局部代碼塊
- 靜態代碼塊(Static修飾符修飾的代碼塊)
構造代碼塊的格式:
{ 代碼塊的內容 }
構造方法: 只能給指定的對象做初始化
構造代碼塊的使用注意點:
1.構造代碼塊它是在建立對象的時調用。
2.每建立一次對象,構造代碼塊就會被調用一次。
3.jvm在編譯Java源檔案時,會預設將成員變數的定義,放在類的最上面。
4.成員變數的賦值實際上是在構造方法中完成的。它會在構造方法的代碼之前執行。
5.構造代碼塊的代碼也是在構造方法中執行的,他也是在構造方法的代碼之前執行的。
6.如果只有成員和構造代碼塊,按順序執行。
Java this關鍵字
this關鍵字: 當前調用方法的所屬對象, 誰調用了這個方法,this 就指的是誰。
this關鍵字的使用:
1.當局部變數和成員變數同名時,我可以通過this關鍵字來擷取到成員變數。
2.可以通過this關鍵字調用本類中構造方法。
3如果沒有同名的局部變數,方法中調用成員量時,在編譯的時候會預設給給成員變數加一個this
4.在方法中可以通過this擷取方法調用者對象。
5.調用其他的構造方法。
注意點 1.this必須是構造器中的第一個語句
2.一個構造方法中不能夠同時調用兩個其他的構造方法。
3.構造方法中不要互相調用,會出現死迴圈。
static關鍵字
static:是一個靜態修飾符
static可以用來修飾成員變數:
擷取成員變數:
方式一:
對象.屬性名稱
方式二:
類名.屬性名稱
1.static 關鍵字只能修飾成員變數,不能修飾局部變數。
static關鍵字
static修飾方法: 靜態方法.
靜態方法的訪問方式:
訪問方式一: 對象.方法名
訪問方式二: 類.方法名
靜態方法和非靜態方法的區別:
1.靜態方法可以通過類和對象來訪問,但是非靜態方法只能通過對象來訪問。
2.靜態方法中不允許直接使用非靜態成員變數。靜態方法中只能使用靜態成員變數。
3.非靜態方法中既可以使用非靜態成員變數,還可以使用靜態成員變數。
4.靜態方法中不能訪問非靜態方法,只能訪問靜態方法。
5.非靜態方法中是可以訪問靜態方法
6.靜態方法中不允許有this關鍵字和super關鍵字
總結: 靜態方法中只能訪問靜態屬性和行為 ,非靜態方法中都可以訪問。
靜態修飾法的使用情境: 你的方法裡面沒有對對象的屬性行為直接操作的時候就可以用static來修表示方法。
主方法 public static void main(String[] args) 的意思
public : 方法是公開任何人都可以訪問。目的就是為了讓jvm能夠訪問到。
static : 可以用類來存取方法,避免建立對象。jvm不知道該如何建立對象。
void : jvm虛擬機器那到放回值沒有任何意義。
main : 方法的名字,一個約定好的事情。
arguments(參數): 可以在程式運行時傳遞參數進來。
設計模式
java中常用的設計模式:
1 單例設計模式
2 模板設計模式
3 裝飾者設計模式
4 觀察者設計模式
5 原廠模式
單例設計模式: 通過單例類只能建立同一個對象
單例的使用:
1.需要花費大量資源的操作。
2.網路請求 javaEE servlet
單例對象的建立步驟:
1.私人化構造方法
2.提供一個靜態方法來建立對象
3.定義一個靜態成員變數接收對象
樣本:
classSingle1
{
private Single1(){}
static Single1 s ;
publicstatic Single1 initSingle(){
if(s ==null){
s = newSingle1();
}
return s;
}
}
今天就寫那麼多吧,還有很多的應用代碼沒有發上來,下次補上.
java第四周學習