1. 程式人生 > >Java的面向對象屬性

Java的面向對象屬性

static 自身 機制 對象創建 pri 類的屬性 port 效率 更改

定義類
定義類的過程就是定義類的屬性的過程;
類的屬性就是累的靜態屬性的簡稱,指類內包含的各項數據。

類的服務被稱為成員函數或方法。

繼承extends
通過定義繼承方法,子類可以獲得父類的所有屬性和方法

接口implements
說明當前類中實現了哪個接口定義的功能和方法
是Java語言中實現多重繼承的一種機制

類的修飾符分為:
訪問控制符
抽象類說明符
最終說明符

類的屬性:
描述了類內部的信息,又稱為類的靜態屬性
類屬性為簡單變量

【修飾符】 變量類型 變量名【=變量初值】
【修飾符】 類名 對象名 【=new 類名(實際參數列表)】

若使用另一個類的對象作為當前類所定義的類的屬性,
要保證該對象所在的類在當前類中是可已被當前類所引用的

類屬性的修飾符包括:
訪問控制符
靜態修飾符static
最終修飾符final
易失修飾符volatile
過渡丟師傅transient

類的方法(成員函數)
用來規定類屬性上的操作
實現類內部功能的機制
也是類與外界交互的窗口

聲明方法的語法:
【修飾符】返回值類型 方法名(參數列表)
Trows 例外名1,例外名2,...
{
方法體:
局部變量聲明;
語句序列;
}

方法的修飾符包括:
訪問控制符
靜態修飾符static
抽象修飾符abstract
最終修飾符final
同步修飾符synchronous
本地修飾符native

類的構造函數

特殊之處:
構造函數的方法名與類名相同
構造函數沒有返回類型

構造函數的主要作用是完成對類對象的初始化工作

在創建一個類的新對象的同時,系統會自動調用該類的構造函數為新對象初始化

Java在聲明類是,可以不定義構造函數,系統會自動為該類生成一個默認的構造函數
此時這個構造函數的名字與類名相同,沒有任何形式參數,也不完成任何操作

類的訪問控制符只有一個public
屬性和方法的訪問控制符有:
public

private
protected
private protected

對於同一個包中的類可以不需任何說明,方便的互相訪問和引用

在不同包中的類,只有他們都聲明為public時,然後再在程序頭部聲明import後才可以被訪問和引用相應的類。

publici修飾的類的屬性稱為公共屬性

如果公共屬性屬於一個公共類,則可以被所有的其他類使用

public修飾符會造成安全性和數據封裝性下降,應盡量減少public屬性的使用

缺省訪問控制符規定該類只能被同一個包中的類訪問和引用,而不可以被其他包中的類引用,這種特性稱為包訪問性。

類內的屬性和方法如果沒有訪問控制符來限定,也說明他們具有包訪問性,可以被同一個包中的其他類所訪問和調用

用private修飾的屬性或方法只能被該類自身所訪問和修改,而不能被任何其他類,包括該類的子類來獲取和引用。
procted修飾的屬性可以被該類自身和包中的類訪問
public可以被任意訪問

靜態屬性
被static修飾的屬性稱為靜態屬性
靜態屬性是一個公共的存儲單元
任何一個類的對象訪問它時取到的都是相同的值
任何一個類的對象去修改它時,都是在對同一個內存單元做操作。

static修飾符修飾的屬性是屬於類的公共屬性
static修飾符修飾的方法是屬於整個類的方法
不用static修飾符修飾的方法是屬於某個具體對象或實例的方法

聲明一個方法的static至少有三重含義
調用這個方法時,應該使用類名做前綴,而不是某一個具體的對象名
非static的方法是屬於某個對象的方法,在這個對象創建時對象的方法在內存中擁有自己的專用代碼段
而static的方法是屬於整個類的
它在內存中的代碼段將隨著類的定義而分配和裝載,不被任何一個對象專有
static方法只能處理static類型的數據

靜態初始化器
石油關鍵字static引導的一對大括號括起的語句組

靜態初始化器與構造函數的區別:
構造函數是對每個新創建的對象初始化,而靜態初始化器是對每個類進行初始化
構造函數是在用new運算符產生新對象時由系統自動執行,而靜態初始化器則是在它所屬的類加載入內存時由系統調用運行的
不同於構造函數,靜態初始化器不是方法,沒有方法名,返回值和參數列表

抽象類
當一個類被生命為abstract時,這個類被稱為抽象類
所謂抽象類就是沒有具體實例對象的類
抽象類是它所有子類的公共屬性的集合
使用抽象類的一大優點就是可以利用這些公共屬性來提高開發和維護程序的效率

最終類,最終屬性,最終方法,終結器
最終類
如果一個類被final修飾符所修飾和限定,說明這個類不可能擁有子類
最終屬性
final就是用來修飾常量的修飾符,一個類的成員變量如果被聲明為final,那麽它的取值在程序的執行過程中都不會改變,也就是一個常量

用final修飾符說明常量時:
需要說明常量的數據類型
需要同時指出常量的具體取值
因為所有類的對象的常量成員,其數值都固定一致,為了節省空間,常量通常都被聲明為static

final修飾符所修飾的類方法,是功能和內部語句都不能被更改的最終方法,即是不能被當前類的子類重載的方法
final方法固定所對應的具體操作,防止子類對父類關鍵方法的錯誤的重定義,保證了程序的安全性和正確性

所有已被private修飾符限定為私有的方法,以及所包含在final類中的方法,都被缺省的認為是final的

終結器
終結器是回收對象時執行的方法
protected void finalize(){}
終結器是一個名為finalize的方法,沒有產生列表和返回值

volatile修飾符
被volatile修飾的類的屬性可能同時被幾個線程控制和修改
通常用來修飾受外部輸入的屬性

Java的面向對象屬性