更新時(shí)間:2022-12-26 11:13:35 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1388次
面向?qū)ο笕筇匦裕?a href="/tutorial_java_se/115.html" target="_blank" title="Java封裝">封裝、繼承、多態(tài)
封裝:
將類(lèi)的某些信息隱藏在類(lèi)內(nèi)部,不允許外部程序直接訪問(wèn),而是通過(guò)該類(lèi)提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)
繼承:
子類(lèi)擁有父類(lèi)的所有屬性和方法(除了private修飾的屬性不能擁有),從而實(shí)現(xiàn)了實(shí)現(xiàn)代碼的復(fù)用
多態(tài):
使用父類(lèi)引用接受,不同的子類(lèi)的對(duì)象實(shí)例,父類(lèi)引用調(diào)用相同的方法,根據(jù)子類(lèi)不同的實(shí)例,產(chǎn)生不同的結(jié)果
在定義一個(gè)對(duì)象的特性的時(shí)候,有必要決定這些特性的可見(jiàn)性,即那些特性對(duì)外部是可見(jiàn)的,哪些特性
用于表示內(nèi)部狀態(tài)。
通常,應(yīng)禁止直接訪問(wèn)一個(gè)對(duì)象中數(shù)據(jù)的實(shí)際表示,而應(yīng)通過(guò)操作接口來(lái)訪問(wèn),這稱(chēng)為信息隱藏。
封裝的步驟
1.使用private修飾需要封裝的成員變量
2.提供一個(gè)公開(kāi)的方法設(shè)置或者訪問(wèn)私有的屬性
設(shè)置:通過(guò)set方法,命名格式:set屬性名();屬性名首字母要大寫(xiě)
訪問(wèn):通過(guò)get方法,命名格式:get屬性名();屬性名首字母要大寫(xiě)
//對(duì)象能在類(lèi)的外部"直接"訪問(wèn)
public class Student{
public String name;
public void println(){
System.out.println(this.name);
}
}
public class Test{
public static void main(String[] args){
Student s = new Student();
s.name = "tom";
}
}
在類(lèi)中一般不會(huì)把數(shù)據(jù)直接暴露在外部的,而使用private(私有)關(guān)鍵字把數(shù)據(jù)隱藏起來(lái)
public class Student{
private String name;
}
public class Test{
public static void main(String[] args){
Student s = new Student();
//編譯報(bào)錯(cuò),在類(lèi)的外部不能直接訪問(wèn)類(lèi)中的私有成員
s.name = "tom";
}
}
如果在類(lèi)的外部需要訪問(wèn)這些私有屬性,那么可以在類(lèi)中提供對(duì)于的get和set方法,以便讓用戶在類(lèi)的外部
可以間接的訪問(wèn)到私有屬性
//set負(fù)責(zé)給屬性賦值
//get負(fù)責(zé)返回屬性的值
public class Student{
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
public class Test{
public static void main(String[] args){
Student s = new Student();
s.setName("tom");
System.out.println(s.getName());
}
}
繼承是類(lèi)和類(lèi)之間的一種關(guān)系。除此之外,類(lèi)和類(lèi)之間的關(guān)系還有依賴(lài)、組合、聚合等。
繼承關(guān)系的倆個(gè)類(lèi),一個(gè)為子類(lèi)(派生類(lèi)),一個(gè)為父類(lèi)(基類(lèi))。子類(lèi)繼承父類(lèi),使用關(guān)鍵字extends來(lái)表示。
Java多態(tài)是什么?如: Student繼承了Person類(lèi)
Student s1 = new Student();
Person s2 = new Student();
Object s3 = new Student();
則s1只能調(diào)用Student中的方法
而s2除此之外還能調(diào)用Person中的方法
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743