java——關鍵字以及修飾屬性


1. java中的修飾屬性(public,private,protect,default)

public:java中訪問限制最寬的修飾符。被其修飾的類,屬性以及方法不僅可以跨類訪問,而且可以跨包(package)訪問

private:權限限制最窄的修飾符。被其修飾的類,屬性以及方法只能被該類的對象訪問,子類不能訪問,更不能跨包訪問

protect:介於public和private之間。被其修飾的類,屬性以及方法只能被類本身的方法以及子類訪問,即使子類在不同的包中也可以訪問

default:默認訪問修飾符,只能在一個包中進行訪問

 

類的訪問規則
                                    同一個包中的其他類               不同包中的其他類
public修飾的類                     允許                                        允許
缺省修飾的類                       允許                                      不允許
 
屬性和方法的訪問規則
                                                                           同一個包中的類           不同包中的類             類內
所隸屬的類被public修飾         private                                                                                        允許
                                               protected                     允許                                                        允許
                                                 缺省                           允許                                                        允許
                                                public                          允許                            允許                     允許
 
所隸屬的類被缺省修飾          private                                                                                          允許
                                              protected                     允許                                                         允許
                                                缺省                           允許                                                         允許
                                               public                          允許                                                         允許
 

2. java中的關鍵字static

(1) static 修飾靜態變量或者全局變量(編譯時就開辟了空間,且只有一個,可用來做全局變量,可通過類名訪問),其他的變量都叫做實例變量。

(2) static 修飾方法,表示整個類的方法,不需要創建對象來調用,可以通過類名來調用,例如Collections和Arrays(數組的操作)整個都是static修飾的方法。不是static修飾的方法必須先new一個對象,才能調用。另外,static方法中只能調用static方法。 public static void main(String[] args),main必須用static修飾。

(3) static 靜態代碼塊,類中獨立於成員變量和成員函數。用來初始化全局的變量,且只會比執行一次。

(4) 靜態內部類:只能訪問外部類的靜態成員變量和靜態方法。

 

3. java中的關鍵字final(終極修飾符)

(1) 修飾基本的數據類型,可以認為這些數據是常量,值是不可以再改變的

(2) 修飾其他類的對象,該數據和其指向的對象之間的綁定關系是不可更改的,而對象內部的屬性是可以被更改的

(3) 被final修飾的方法是不可以被子類覆蓋的,但final修飾的方法可以被子類重載(不可覆蓋,可被重載),可以被繼承

(4) final修飾的類不能被繼承,且其中的方法也一定是final方法(默認),不會再有子類

(5) 常用作 static final,因為final指定的屬性要么取值不可更改,要么綁定關系不可更改,所以加上final可以節省內存

(6) final不能修飾構造方法,因為子類默認使用父類的構造方法

Java是從C++發展而來的,C++中,一個類可以同時繼承多個父類,但在java中,類只能單繼承

 

4. java中的關鍵字finally

finally修飾的代碼塊一定會執行,在try和catch模塊中return之前需要先執行finally。

try{}
catch(){}
catch(){}
catch(){}
finally{}
 
多個catch來進行捕獲,finally中寫入最終要執行的語句,無論異常是否發生,都會執行finally中的語句

 

5. java中的多態

編譯時多態,編譯時就確定了對具體方法體的調用,比如函數的重載(參數不同)
運行時多態,運行時才確定對具體方法的調用,繼承中方法的覆蓋(子類的方法覆蓋掉父類的方法)
 
6. finalize()
垃圾回收器要回收對象的時候,首先就會調用這個類的finalize()方法,finalize()就相當於一個析構函數一樣
純java編寫的class不需要重新覆蓋這個方法,因為Object已經實現了一個默認的
不過如果C++編寫的類的話,需要重新覆蓋這個默認的函數
調用的三種情況
(1) 被gc回收時調用
(2) 程序退出時,每個對象調用一次finalize方法
(3) 顯式地調用finalize方法
 
7. this
當前對象的一個引用
調用當前對象的屬性和方法
 一個類中一個構造方法調用另一個構造方法時,使用this
方法返回當前正在討論的對象時,可以采用return this的形式

java.lang.Object類:所有類的父類,java中所有的類都是繼承於Object類
public boolean equals(Object obj):  判斷兩個對象一樣,返回true,只有兩個對象指向同一個對象時,才會返回true
public String toString(): 各個類可以根據自己的需求來覆蓋該類實現字符串的輸出
 
屬性的隱藏:子類中出現和父類同名屬性的現象,這個時候調用子類函數處理子類的屬性,調用父類函數處理父類的屬性
方法的覆蓋:子類中定義了和父類中具有相同方法頭方法的現象
 
在繼承中,先調用父類的構造方法,然后調用子類的構造方法
super關鍵字:可以直接調用父類中被隱藏的屬性和方法
super(實參): 調用父類的構造方法
super.父類屬性: 調用父類的屬性(非隱藏屬性可以直接使用,不需要super)
 
this 和 super不能再static修飾的方法內使用
對象  instanceof 類名:判斷對象是不是某個類的實例
 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM