28、static 關鍵字(靜態的)非物件導向的
乙個類的多個物件共享乙個變數,需要用static修飾該變數
因為static修飾的變數為類的所有例項共享,所以static成員不屬於某個類的例項,而屬於整個類
所以在訪問允許的情況下,可以使用「 類名. 」直接訪問靜態成員(成員包括屬性和方法)
static 成員也稱為類成員或靜態成員、類屬性類似於全域性變數
在 static 方法內部只能訪問類的static修飾的屬性,不能訪問非static屬性
非靜態成員變數,必須先通過類建立物件例項才能進行訪問,而靜態成員變數可以通過類直接進行訪問而不需要事先建立物件例項
在static 方法內部不能使用 this、super 關鍵字【指的是當前引用類的物件例項】
非靜態方法中可以直接訪問類的靜態成員
設計類時,分析哪些類屬性不因物件的不同而改變,將這些屬性設定為靜態成員
如果方法與呼叫者無關,則這樣的方法可進行宣告為類方法,由於不需要建立物件就可以呼叫類方法,從而簡化了方法的呼叫。
29、靜態初始化【對類的靜態屬性進行初始化】
通過構造器對非靜態屬性進行初始化
如果在構造器中對靜態屬性進行初始化,那麼就是每建立乙個新例項,都會重新對靜態成員進行賦值
**區:
▲ static
▲30、singleton 單子設計模式
設計模式:是在大量實踐中總結和理論化之後優選的**結構、程式設計風格、以及解決問題的思考方法
採取一定的方法保證在整個軟體系統中,對某個類只能存在乙個物件例項
不能在類的外部通過new關鍵字的方式建立新的例項
構造器進行私有化 private 修飾符修飾
在類的內部建立例項
為了讓類的外部能夠訪問到類的內部建立的例項,該例項必須使用 static修飾
不能允許在類的外部訪問修改內部建立的例項的引用,把該屬性用 private 修飾
為了外部能進行訪問,新增getter
31、final關鍵字(可修飾類、屬性和方法)
final 標記的變數(成員變數或區域性變數)即成為常量,只能賦值一次
final 標記的類不能被繼承。提高安全性,提高程式的可讀性
final標記的方法不能被子類重寫,增加安全性
final標記的成員變數必須在宣告的同時或在每個構造方法中顯示賦值,然後才能進行正常使用
32、abstract 關鍵字(修飾類和方法)
abstract 修飾類稱為抽象類,修飾的方法稱為抽象方法。
抽象類:不能被例項化,就是用來被繼承的類
抽象方法:沒有方法體的方法
抽象方法所在的類一定是抽象類,抽象方法是用來被子類重寫的
私有方法、構造器、靜態方法【非物件導向】 都不能被abstract 修飾
抽象類是用來模擬化那些父類無法確定全部實現,而由其子類提供具體實現的物件的類
33、介面(inte***ce 關鍵字)【介面是一種規範 面向介面程式設計】
只包含抽象方法和常量值的定義的集合
【介面. 方式直接訪問】介面中所有成員變數預設是由public
static
final 修飾,宣告變數時必須直接賦值,常量識別符號的書寫要求:字母都大寫,多個單詞之前用下劃線連線
介面中所有方法都預設由public
abstract 修飾
實現介面的類中必須提供介面中所有方法的具體實現內容,若該類為抽象類,另當別論
多個無關的類可以實現同乙個介面
實現介面 使用 implements 關鍵字,若乙個類實現介面和繼承類,則繼承(extends)放在前面,即先繼承父類,再繼承多個介面
乙個類可以實現多個無關的介面,若實現多個介面,則介面間使用 , 分開
與繼承關係類似,介面與實現類之間存在多型性
介面也可以繼承另乙個介面,使用extends關鍵字
JAVA溫習課堂1
1.基本資料型別定義直接把值放在棧記憶體空間裡 2.引用資料型別是在棧記憶體空間裡存該資料型別值存放在堆記憶體中的首位址 3 8種基本資料型別 整形 byte 1位元組 short 2位元組 int 4位元組 long 8位元組 l結尾 浮點型 預設為double float 結尾加f 十進位制數形...
課堂總結5
位元組對齊詳細講解 1 我們的結構體變數本身就是在4位元組對齊的位置,編譯器幫我們做的事。2 第乙個成員,就從結構體開始的位址處,存放。這個元素,具體佔多少位元組,由緊挨著下個元素決定。3 整個成員變數自身都對齊 了,還沒有結束。4 整個結構體還要是預設位元組對齊的最小整數倍。結構體預設的位元組對齊...
課堂筆記5
1 語句 語句是完成某種特定任務的 要以英文的分號 結束 語句在定義的時候可以出現在一行中,也可以一行出現多條語句 表示式可以單獨出現在js 中,但是沒有任何意思 2 變數 變數是對 值 的引用。在其他的場合中,有時候把引用也成為位址或指標 在js中,定義變數用 var 關鍵字 var可以不出現變數...