更新時(shí)間:2022-04-11 11:11:30 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2072次
Java面向?qū)ο?/a>的特征有哪些?動(dòng)力節(jié)點(diǎn)小編來給大家總結(jié)一下。
類
對(duì)象
數(shù)據(jù)抽象
封裝
繼承
多態(tài)性
該類代表一個(gè)真實(shí)世界的實(shí)體,它充當(dāng)所有對(duì)象的藍(lán)圖。
我們可以使用 Class 創(chuàng)建任意數(shù)量的對(duì)象。
示例:
我們?yōu)?ldquo; Student ”實(shí)體創(chuàng)建一個(gè)類,如下所示
班級(jí)學(xué)生{
字符串id;
年齡;
弦樂課程??;
無效注冊(cè)(){
System.out.println(“學(xué)生注冊(cè)”);
}
}
上述類的定義包含 id、age 和 course 3 個(gè)字段,還包含了一個(gè)名為“enroll”的行為或方法。
面向?qū)ο缶幊滔到y(tǒng)(OOPS)是基于“對(duì)象”的概念設(shè)計(jì)的。 它包含 變量 (用于保存數(shù)據(jù))和 方法(用于定義行為)。
我們可以 使用這個(gè)類創(chuàng)建任意數(shù)量的對(duì)象 ,所有這些對(duì)象都將獲得相同的字段和行為。
學(xué)生 s1 = 新 學(xué)生( ) ;
現(xiàn)在我們 為同一個(gè)類 “學(xué)生”創(chuàng)建了 3 個(gè)對(duì)象s1、s2 和 s3 。我們可以根據(jù)需要以相同的方式創(chuàng)建任意數(shù)量的對(duì)象。
我們可以為對(duì)象的每個(gè)字段設(shè)置值,如下所示,
s1。id = 123 ;
s2。年齡= 18 ;
s3。當(dāng)然= “計(jì)算機(jī)” ;
抽象是一個(gè)過程,您只顯示“相關(guān)”數(shù)據(jù)并“隱藏”用戶不必要的對(duì)象細(xì)節(jié)。
例如,當(dāng)您在線登錄您的銀行帳戶時(shí),您輸入您的 user_id 和密碼并按登錄,當(dāng)您按登錄時(shí)會(huì)發(fā)生什么,輸入數(shù)據(jù)如何發(fā)送到服務(wù)器,如何驗(yàn)證,這些都是從您那里抽象出來的。
我們可以 使用2 種方式在 Java 中實(shí)現(xiàn)“抽象 ”
抽象類
接口
1.抽象類
Java 中的抽象類可以使用“abstract”關(guān)鍵字創(chuàng)建。
如果我們將任何類抽象化,那么它就不能被實(shí)例化,這意味著我們不能創(chuàng)建抽象類的對(duì)象。
在 Abstract 類中,我們可以聲明抽象方法和具體方法。
所以使用抽象類,我們可以實(shí)現(xiàn)0到100%的抽象。
示例:
抽象類 Phone{
void receive all();
摘要 void sendMessage();
任何需要訪問此功能的人都必須使用指向其子類的 Phone 對(duì)象來調(diào)用該方法。
2.接口
接口用于實(shí)現(xiàn)純粹或完整的抽象。
我們將在接口內(nèi)聲明的所有方法僅作為抽象方法。
因此,我們稱接口為 100% 抽象。
示例:
我們可以為 Car 功能抽象定義接口如下
Interface Car{
public void changeGear( int gearNumber);
公共無效應(yīng)用剎車();
}
現(xiàn)在,這些功能,比如換檔和剎車,都使用這個(gè)接口抽象出來了。
封裝是將對(duì)象狀態(tài)(字段)和行為(方法)綁定在一個(gè)稱為“類”的單個(gè)實(shí)體中的過程。
由于它將字段和方法都包裝在一個(gè)類中,因此可以防止外部訪問。
我們可以使用訪問修飾符(例如 private、protected 和 public 關(guān)鍵字)來限制對(duì)類成員的訪問。
當(dāng)我們?cè)?Java 中創(chuàng)建一個(gè)類時(shí),這意味著我們正在進(jìn)行封裝。
封裝有助于我們?cè)诓挥绊懓踩缘那闆r下實(shí)現(xiàn)代碼的可重用性。
示例:
class EmployeeCount
{
private int numOfEmployees = 0;
公共無效 setNoOfEmployees (int count)
{
numOfEmployees = count;
}
public double getNoOfEmployees ()
{
return numOfEmployees;
}
}
公共類 EncapsulationExample
{
public static void main(String args[])
{
EmployeeCount obj = new EmployeeCount ();
obj.setNoOfEmployees(5613);
System.out.println(“員工人數(shù):”+(int)obj.getNoOfEmployees());
}
}
封裝在java編程中有什么好處
嗯,在某個(gè)時(shí)間點(diǎn),如果你想改變EmployeeCount類的實(shí)現(xiàn)細(xì)節(jié),你可以自由地這樣做,而不會(huì)影響正在使用它的類。
一個(gè)類繼承或獲取另一個(gè)類的屬性。
繼承提供了代碼可重用性的思想,每個(gè)子類只定義了它獨(dú)有的那些特性,其余的特性可以從父類繼承。
繼承是在現(xiàn)有類的基礎(chǔ)上通過擴(kuò)展其公共數(shù)據(jù)成員和方法來定義新類的過程。
它允許我們重用代碼,它提高了 Java 應(yīng)用程序的可重用性。
父類稱為 基類 或 超類。擴(kuò)展基類的子類稱為派生類或 子類 或 子類。
要繼承一個(gè)類,我們使用 extends 關(guān)鍵字。這里A類是子類,B類是父類。
A 類擴(kuò)展 B
{
}
繼承類型:
單一繼承:指一個(gè)類擴(kuò)展另一個(gè)類的子類和父類關(guān)系。
多級(jí)繼承:類擴(kuò)展子類的子類和父類關(guān)系。例如,A 類擴(kuò)展 B 類,B 類擴(kuò)展 C 類。
分層繼承:多個(gè)類擴(kuò)展同一個(gè)類。例如,B 類擴(kuò)展 A 類,C 類擴(kuò)展 A 類。
這是一個(gè)對(duì)象在不同情況下表現(xiàn)不同的概念。
由于對(duì)象具有多種形式,因此稱為多態(tài)。
在java中,我們可以使用方法重載和方法覆蓋來實(shí)現(xiàn)。
Java中有兩種類型的多態(tài)性:
方法重載
在這種情況下,調(diào)用哪個(gè)方法將在編譯時(shí)根據(jù)參數(shù)的數(shù)量或類型自行決定。靜態(tài)/編譯時(shí)多態(tài)是方法重載的一個(gè)例子。
方法覆蓋
在這種情況下,將在運(yùn)行時(shí)根據(jù)引用變量實(shí)際指向的對(duì)象來決定調(diào)用哪個(gè)方法。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)