版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
講師:XXX時(shí)間:
年
月目錄CONTENTWS01.項(xiàng)目開(kāi)發(fā)環(huán)境搭建02.學(xué)生成績(jī)管理03.學(xué)生基本信息管理04.不同類(lèi)別學(xué)生信息管理05.學(xué)生基本信息查找與計(jì)算目錄CONTENTWS06.使用集合實(shí)現(xiàn)學(xué)生信息管理07.學(xué)生信息管理系統(tǒng)異常處理08.使用文件實(shí)現(xiàn)學(xué)生信息存儲(chǔ)09.使用JDBC實(shí)現(xiàn)學(xué)生信息管理10.圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)項(xiàng)目三
學(xué)生基本信息管理項(xiàng)目3學(xué)生基本信息管理任務(wù)一面向?qū)ο蠛皖?lèi)任務(wù)二
對(duì)
象任務(wù)三
包和修飾符知識(shí)目標(biāo)了解類(lèi)和對(duì)象的概念,以及面向?qū)ο缶幊痰奶匦?。掌握定義類(lèi)、成員變量和成員方法的方法,方法重載的方法,以及構(gòu)造方法和this關(guān)鍵字的用法。掌握創(chuàng)建和使用對(duì)象的方法。掌握聲明和使用包的方法,了解Java常用系統(tǒng)包。
掌握訪(fǎng)問(wèn)控制修飾符、static修飾符、abstract修飾符和final修飾符的用法。能力目標(biāo)能夠使用面向?qū)ο笏枷虢鉀Q實(shí)際問(wèn)題。能夠合理設(shè)置類(lèi)及其成員的訪(fǎng)問(wèn)權(quán)限。素養(yǎng)目標(biāo)強(qiáng)化協(xié)同合作精神,增強(qiáng)數(shù)據(jù)安全意識(shí)。培養(yǎng)創(chuàng)新和模塊化思維,提升靈活運(yùn)用知識(shí)解決實(shí)際問(wèn)題的能力。點(diǎn)擊跳過(guò)情境掃碼觀看“學(xué)生基本信息管理”視頻,討論并回答下列問(wèn)題問(wèn)題1:學(xué)生基本信息一般包括哪些信息,這些信息分別是什么數(shù)據(jù)類(lèi)型?問(wèn)題2:如何使用Java實(shí)現(xiàn)學(xué)生基本信息管理?學(xué)生基本信息管理掃碼學(xué)習(xí)任務(wù)一面向?qū)ο蠛皖?lèi)主流的編程思想12
面向過(guò)程編程強(qiáng)調(diào)按部就班地執(zhí)行任務(wù),適合解決線(xiàn)性、明確的問(wèn)題。面向過(guò)程編程
面向?qū)ο缶幊掏ㄟ^(guò)封裝、繼承和多態(tài)提升代碼的復(fù)用性和維護(hù)性。面向?qū)ο缶幊堂嫦驅(qū)ο缶幊虄?yōu)勢(shì)封裝與抽象
通過(guò)封裝,面向?qū)ο缶幊淘试S創(chuàng)建可重用的代碼模塊,減少重復(fù)勞動(dòng)。
面向?qū)ο缶幊讨С掷^承和多態(tài),使得代碼更易于擴(kuò)展和維護(hù),適應(yīng)需求變化??蓴U(kuò)展性與維護(hù)性1.對(duì)象和類(lèi)對(duì)象定義
現(xiàn)實(shí)世界的每個(gè)具體事物均可視為對(duì)象,如狗、電視機(jī)等,均具備名稱(chēng)、顏色等屬性及叫、變速等行為特征。類(lèi)與實(shí)例
類(lèi)為同類(lèi)對(duì)象的抽象集合,如自行車(chē)設(shè)計(jì)圖定義車(chē)型與功能,其具體生產(chǎn)出的車(chē)輛即為類(lèi)的實(shí)例化表現(xiàn)。2.面向?qū)ο缶幊痰奶匦猿橄蠓庋b繼承多態(tài)抽象概念
面向?qū)ο缶幊讨校橄笫顷P(guān)鍵特性,提煉事物屬性與行為,構(gòu)建通用類(lèi)或接口,聚焦核心功能。抽象實(shí)例
交通工具抽象為類(lèi),具速度、核載人數(shù)屬性,移動(dòng)行為,不論汽車(chē)飛機(jī),提高代碼復(fù)用性與擴(kuò)展性。(1)抽
象(2)封
裝封裝概念
面向?qū)ο缶幊袒庋b屬性與行為于類(lèi)中,隱藏細(xì)節(jié),提供接口,確保用戶(hù)交互無(wú)需了解內(nèi)部邏輯。封裝作用
控制訪(fǎng)問(wèn)權(quán)限,保護(hù)內(nèi)部數(shù)據(jù)結(jié)構(gòu),避免外部操作影響,提升代碼安全與可維護(hù)性。(3)繼
承封裝概念繼承的概念與作用
繼承允許子類(lèi)從父類(lèi)繼承、修改或新增屬性與行為。繼承的優(yōu)點(diǎn)
繼承實(shí)現(xiàn)代碼復(fù)用,減少冗余,便于維護(hù)擴(kuò)展,提升編程效率。封裝概念汽車(chē)類(lèi)的繼承示例
汽車(chē)分乘用車(chē)(≤9座)和商用車(chē),衍生轎車(chē)、貨車(chē)等子類(lèi),繼承品牌、座位等屬性。
汽車(chē)的繼承關(guān)系多態(tài)多態(tài)概念
一個(gè)接口多種實(shí)現(xiàn),子類(lèi)繼承父類(lèi)展現(xiàn)不同行為。多態(tài)優(yōu)勢(shì)
提高代碼靈活性與擴(kuò)展性,同一行為在父類(lèi)及子類(lèi)中含義各異,實(shí)現(xiàn)不同功能效果。(4)多態(tài)打印機(jī)多態(tài)表現(xiàn)1.定義類(lèi)
類(lèi)是
Java
程序的基本結(jié)構(gòu)單位,想要?jiǎng)?chuàng)建對(duì)象,需要先定義類(lèi)。定義類(lèi)的語(yǔ)法格式[類(lèi)修飾符]class類(lèi)名[extends父類(lèi)名][implements接口名列表]{//類(lèi)體}其中,類(lèi)修飾符可以是
public、abstract
和
final
等;class
關(guān)鍵字用于聲明類(lèi);類(lèi)名必須是合法的自定義標(biāo)識(shí)符,通常是一個(gè)有意義的名稱(chēng);extends
關(guān)鍵字用于實(shí)現(xiàn)繼承,父類(lèi)名是要繼承的類(lèi)名;implements
關(guān)鍵字用于實(shí)現(xiàn)接口。類(lèi)體是大括號(hào)“{}”中的內(nèi)容,一般包括成員變量和成員方法的定義。publicclassAddress{ //定義類(lèi)//成員變量Stringname;Stringaddress;//成員方法publicvoidshowAddress(){System.out.println(name+"的地址是"+address);}}示例定義一個(gè)地址類(lèi)
Address,包含姓名和地址變量,以及顯示地址的方法,可以使用以下代碼實(shí)現(xiàn)。2.定義成員變量
成員變量體現(xiàn)的是對(duì)象的屬性。定義成員變量的語(yǔ)法格式[修飾符]數(shù)據(jù)類(lèi)型
變量名[=初值];其中,修飾符可以是訪(fǎng)問(wèn)控制修飾符,也可以是static和final;數(shù)據(jù)類(lèi)型是Java支持的任意數(shù)據(jù)類(lèi)型。定義成員變量時(shí)可以設(shè)置初值,也可以不設(shè)置初值。如果不設(shè)置初值,則成員變量的初值為其數(shù)據(jù)類(lèi)型的默認(rèn)值。如果不設(shè)置初值,則成員變量的初值為其數(shù)據(jù)類(lèi)型的默認(rèn)值。數(shù)據(jù)類(lèi)型默認(rèn)值
數(shù)據(jù)類(lèi)型默認(rèn)值byte、short、int、long0booleanfalsefloat、double0.0引用類(lèi)型null(空值)char''(空格)——常見(jiàn)數(shù)據(jù)類(lèi)型的默認(rèn)值示例Stringname="張某"; //定義姓名成員變量,并賦初值為“張某”intage; //定義年齡成員變量,默認(rèn)初值為0floatscore; //定義成績(jī)成員變量,默認(rèn)初值為0.0在一個(gè)類(lèi)中
在一個(gè)類(lèi)中,成員變量是唯一的。局部變量可以與成員變量同名,但在使用時(shí)局部變量的優(yōu)先級(jí)更高。
雖然
Java
沒(méi)有強(qiáng)制要求成員變量必須在類(lèi)的開(kāi)始部分定義,但建議在成員方法前定義成員變量,以增強(qiáng)代碼的可讀性和結(jié)構(gòu)性。3.定義成員方法成員方法體現(xiàn)的是對(duì)象的行為定義成員方法的語(yǔ)法格式[修飾符]返回值類(lèi)型
方法名([形參列表]){//方法體}其中,修飾符可以是訪(fǎng)問(wèn)控制修飾符,也可以是
static、abstract
和
final;返回值類(lèi)型用于指定成員方法返回?cái)?shù)據(jù)的類(lèi)型,可以是
Java
支持的任意數(shù)據(jù)類(lèi)型,如果成員方法沒(méi)有返回值,則使用
void
關(guān)鍵字;形參(形式參數(shù))列表是在定義成員方法時(shí)聲明的參數(shù),包括參數(shù)類(lèi)型和參數(shù)名,用于接收調(diào)用方法時(shí)傳入的數(shù)據(jù),可以是零個(gè)、一個(gè)或多個(gè),當(dāng)有多個(gè)參數(shù)時(shí),參數(shù)之間用英文逗號(hào)隔開(kāi)。classStudent{floatscore; //定義學(xué)生成績(jī)成員變量publicfloatgetScore(){ //定義成員方法returnscore; //返回學(xué)生成績(jī)}}示例如果定義的方法有返回值,則在方法中必須使用
return
關(guān)鍵字返回指定類(lèi)型的數(shù)據(jù),且返回?cái)?shù)據(jù)的類(lèi)型與方法的返回值類(lèi)型一致。例如,在學(xué)生類(lèi)
Student
中定義一個(gè)成員方法,獲取學(xué)生成績(jī)score,可以使用以下代碼實(shí)現(xiàn)。形參
形參只有在方法被調(diào)用時(shí)才分配內(nèi)存空間,調(diào)用結(jié)束便釋放所分配的內(nèi)存空間。因此,形參只在方法內(nèi)部有效。實(shí)參必須是確定的值,方法被調(diào)用時(shí)將這些值傳遞給形參。。【運(yùn)行結(jié)果】實(shí)例:3-1求兩個(gè)整數(shù)的較大值【參考代碼】/*GetMax.java*/publicclassGetMax{//定義方法,獲取兩個(gè)整數(shù)的較大值staticintmax(inta,intb){……(詳見(jiàn)教材)
如果定義方法時(shí)參數(shù)的數(shù)量不確定,則可以使用可變參數(shù)??勺儏?shù)使用
3
個(gè)點(diǎn)“…”表示,定義方法時(shí),在參數(shù)類(lèi)型后面加上“…”,然后緊跟參數(shù)名。示例publicvoidmyMethod(int...numbers){//方法體}可變參數(shù)必須是形參列表中的最后一個(gè)參數(shù),且一個(gè)方法只能有一個(gè)可變參數(shù)。實(shí)例:3-2使用可變參數(shù)【運(yùn)行結(jié)果】/*VariableNumbers.java*/publicclassVariableNumbers{//定義方法,輸出1個(gè)浮點(diǎn)數(shù)和不定數(shù)量的整數(shù)……(詳見(jiàn)教材)
【參考代碼】4.方法重載概念
方法重載是指在一個(gè)類(lèi)中定義方法名相同但參數(shù)不同的多個(gè)方法。調(diào)用方法時(shí)系統(tǒng)會(huì)自動(dòng)根據(jù)不同的參數(shù)選擇相應(yīng)的方法。特點(diǎn)(1)方法名必須相同。(2)方法的參數(shù)不同,包括參數(shù)的數(shù)量、類(lèi)型或順序。(3)方法可以有不同的返回值類(lèi)型。(4)方法可以有不同的修飾符?!具\(yùn)行結(jié)果】實(shí)例:3-3方法重載【參考代碼】/*MethodOverload.java*/publicclassMethodOverload{//定義方法,實(shí)現(xiàn)兩個(gè)整數(shù)相加……(詳見(jiàn)教材)
5.構(gòu)造方法構(gòu)造方法的自動(dòng)調(diào)用機(jī)制
構(gòu)造方法在對(duì)象創(chuàng)建時(shí)自動(dòng)執(zhí)行,用于初始化類(lèi)的成員變量。構(gòu)造方法的特殊屬性方法名與類(lèi)名一致
構(gòu)造方法名稱(chēng)必須與所屬類(lèi)名完全相同,這是其顯著特征之一。無(wú)返回值類(lèi)型聲明
構(gòu)造方法不需聲明返回值類(lèi)型,這一特性區(qū)別于普通方法。
如果一個(gè)類(lèi)沒(méi)有顯式定義構(gòu)造方法,則系統(tǒng)會(huì)自動(dòng)提供一個(gè)默認(rèn)的構(gòu)造方法,它沒(méi)有參數(shù),方法體也為空。如果需要在創(chuàng)建對(duì)象時(shí)初始化類(lèi)的成員變量或執(zhí)行一些操作,可以顯式定義一個(gè)構(gòu)造方法。示例publicclassPerson{Stringname; //定義姓名成員變量intage; //定義年齡成員變量publicPerson(){ //定義構(gòu)造方法name="王某"; //為name賦值age=18; //為age賦值}}如果需要在創(chuàng)建對(duì)象時(shí)通過(guò)構(gòu)造方法傳入?yún)?shù),可以定義一個(gè)帶參數(shù)的構(gòu)造方法示例publicclassPerson{Stringname; //定義姓名成員變量intage; //定義年齡成員變量//定義帶參數(shù)的構(gòu)造方法publicPerson(StringmyName,intmyAge){name=myName; //將傳入的myName賦值給nameage=myAge; //將傳入的myAge賦值給age}}【運(yùn)行結(jié)果】實(shí)例:3-4創(chuàng)建Person類(lèi),實(shí)現(xiàn)顯示3個(gè)人的詳細(xì)信息/*Person.java*/publicclassPerson{Stringname; //定義姓名變量……(詳見(jiàn)教材)
【參考代碼】6.this關(guān)鍵字(1)使用
this
關(guān)鍵字訪(fǎng)問(wèn)當(dāng)前類(lèi)的成員變量和調(diào)用當(dāng)前類(lèi)的成員方法語(yǔ)法格式this.成員變量名; //訪(fǎng)問(wèn)當(dāng)前類(lèi)的成員變量this.成員方法名([實(shí)參列表]); //調(diào)用當(dāng)前類(lèi)的成員方法當(dāng)類(lèi)的成員變量與局部變量或方法參數(shù)變量名稱(chēng)相同時(shí),同名的成員變量會(huì)被隱藏,此時(shí)需要通過(guò)this關(guān)鍵字訪(fǎng)問(wèn)隱藏的成員變量?!具\(yùn)行結(jié)果】實(shí)例:3-5使用this關(guān)鍵字訪(fǎng)問(wèn)當(dāng)前類(lèi)的成員變量和調(diào)用當(dāng)前類(lèi)的成員方法/*ThisExample1.java*/publicclassThisExample1{//定義成員變量……(詳見(jiàn)教材)
【參考代碼】(2)使用this關(guān)鍵字在構(gòu)造方法中調(diào)用當(dāng)前類(lèi)的其他構(gòu)造方法語(yǔ)法格式this([實(shí)參列表]); //調(diào)用構(gòu)造方法在構(gòu)造方法中this()語(yǔ)句前不能有其他語(yǔ)句。【運(yùn)行結(jié)果】實(shí)例:3-6使用this關(guān)鍵字在構(gòu)造方法中調(diào)用當(dāng)前類(lèi)的其他構(gòu)造方法/*ThisExample2.java*/publicclassThisExample2{intx,y; //定義成員變量
定義成員變量……(詳見(jiàn)教材)
【參考代碼】創(chuàng)建學(xué)生基本信息類(lèi)掃碼學(xué)習(xí)12實(shí)施流程
在項(xiàng)目的
src
目錄下新建
Student
類(lèi)
在Student類(lèi)中定義帶參數(shù)的構(gòu)造方法3
在Student類(lèi)中定義成員方法面向?qū)ο蠛皖?lèi)面向?qū)ο蟾攀鲱?lèi)任務(wù)二對(duì)
象12
聲明對(duì)象實(shí)例化對(duì)象(1)聲明對(duì)象聲明一個(gè)類(lèi)的變量,該變量的數(shù)據(jù)類(lèi)型為已經(jīng)定義好的類(lèi)語(yǔ)法格式類(lèi)名
對(duì)象名;示例Personp1; (2)實(shí)例化對(duì)象使用
new
關(guān)鍵字為聲明的對(duì)象分配內(nèi)存空間,同時(shí)調(diào)用類(lèi)的構(gòu)造方法初始化對(duì)象語(yǔ)法格式對(duì)象名=new類(lèi)名([實(shí)參列表]);示例p1=newPerson(); //實(shí)例化對(duì)象
其中,實(shí)參列表取決于構(gòu)造方法自身的情況。聲明和實(shí)例化對(duì)象還可以同時(shí)實(shí)現(xiàn),其語(yǔ)法格式類(lèi)名
對(duì)象名=new類(lèi)名([實(shí)參列表]);示例Personp1=newPerson(); 使用對(duì)象
是通過(guò)對(duì)象訪(fǎng)問(wèn)成員變量和調(diào)用成員方法,可以使用“.”實(shí)現(xiàn)。對(duì)象名.成員變量名;對(duì)象名.成員方法名([實(shí)參列表]);語(yǔ)法格式【運(yùn)行結(jié)果】實(shí)例:3-7
編寫(xiě)一個(gè)簡(jiǎn)單的計(jì)算器程序,實(shí)現(xiàn)兩個(gè)浮點(diǎn)數(shù)的加、減、乘、除操作/*Operation.java*/importjava.util.Scanner; //導(dǎo)入Scanner類(lèi)publicclassOperation{……(詳見(jiàn)教材)
【參考代碼】對(duì)象的生命周期一個(gè)對(duì)象的生命周期分為
3
個(gè)階段:創(chuàng)建、使用和銷(xiāo)毀。每個(gè)對(duì)象都有獨(dú)立的內(nèi)存空間,當(dāng)對(duì)象的生命周期結(jié)束時(shí),對(duì)象將變成垃圾。Java
虛擬機(jī)內(nèi)置的垃圾回收器會(huì)定期掃描內(nèi)存,識(shí)別未被引用的對(duì)象并將其回收,從而釋放不再使用的內(nèi)存空間。創(chuàng)建學(xué)生對(duì)象并展示學(xué)生基本信息掃碼學(xué)習(xí)12實(shí)施流程在任務(wù)實(shí)施的
Student
類(lèi)中添加
main()方法通過(guò)
student1
和
student2
調(diào)用
displayInfo()方法3運(yùn)行
Student
類(lèi)對(duì)
象創(chuàng)建對(duì)象使用對(duì)象任務(wù)三包和修飾符1包的概念2包的作用3包的命名包是Java中用于組織類(lèi)的機(jī)制,類(lèi)似于文件夾,用于分類(lèi)存儲(chǔ)Java文件,避免類(lèi)名沖突。
通過(guò)包,可以在不同的命名空間中使用相同的類(lèi)名,便于管理和訪(fǎng)問(wèn)類(lèi)。
在創(chuàng)建類(lèi)時(shí),需要指定類(lèi)所在的包,包名通常采用反向域名的形式,如com.example.package。聲明包概念
在Java中,使用package關(guān)鍵字來(lái)聲明一個(gè)包,這有助于組織和管理類(lèi),避免命名沖突。包聲明位置
包聲明應(yīng)位于源文件的首行,除去注釋?zhuān)源_保編譯器能正確識(shí)別類(lèi)所屬的包。包名規(guī)范
包名通常采用全小寫(xiě)的自定義標(biāo)識(shí)符,反映項(xiàng)目結(jié)構(gòu)或公司域名,如ject。1.聲明包package包名;聲明包語(yǔ)法格式示例packagemypackage;packagecom.sec.mypackage;package
關(guān)鍵字用于聲明包;包名是一個(gè)合法的自定義標(biāo)識(shí)符,一般為小寫(xiě)。其中,com.sec.mypackage包的層級(jí)結(jié)構(gòu)import包名.類(lèi)名;使用包語(yǔ)法格式在某個(gè)類(lèi)中使用其他包中的類(lèi)時(shí),須在該類(lèi)前使用
import
關(guān)鍵字導(dǎo)入指定包中的類(lèi)。示例//導(dǎo)入java.util包中的ArrayList類(lèi)importjava.util.ArrayList;2.使用包如果要導(dǎo)入包中的所有類(lèi),則可以用星號(hào)“*”代替類(lèi)名,其語(yǔ)法格式import包名.類(lèi)名;示例//導(dǎo)入com.sec.mypackage包中的所有類(lèi)importcom.sec.mypackage.*;如果類(lèi)中有
package
語(yǔ)句,則
import
語(yǔ)句緊跟在
package
語(yǔ)句后面;如果類(lèi)中沒(méi)有package
語(yǔ)句,則import語(yǔ)句在類(lèi)文件的第一行。在類(lèi)文件中可以使用多條import語(yǔ)句導(dǎo)入多個(gè)包中的類(lèi)。需要注意的是,使用import語(yǔ)句只能導(dǎo)入其他包中的公共類(lèi)。實(shí)際編譯
在實(shí)際編譯時(shí),Java
并不會(huì)導(dǎo)入星號(hào)所代表的所有類(lèi),只會(huì)導(dǎo)入程序中用到的類(lèi)?!具\(yùn)行結(jié)果】實(shí)例:3-8
創(chuàng)建和使用包【參考代碼】/*CreatePackage.java*/packagecom.example; //聲明包publicclassCreatePackage{……(詳見(jiàn)教材)
新建包
新建包也可在新建類(lèi)時(shí)使用完整類(lèi)名實(shí)現(xiàn)。例如,在新建類(lèi)時(shí)輸入類(lèi)名“com.example1.Test”,會(huì)自動(dòng)新建
com
包,并在包中新建
example1
包,最后在example1包中新建Test類(lèi)。3.Java常用系統(tǒng)包Java
提供了大量常用的類(lèi)庫(kù),它們位于相應(yīng)的系統(tǒng)包中,這些包又稱(chēng)
API
包。與開(kāi)發(fā)者創(chuàng)建的包不同,所有JavaAPI包都以“java.”開(kāi)頭。Java常用的系統(tǒng)包包
名說(shuō)
明java.langJava
基礎(chǔ)包,包含基本數(shù)據(jù)類(lèi)型的包裝類(lèi)、數(shù)學(xué)函數(shù)類(lèi)、字符串類(lèi)、線(xiàn)程類(lèi)、異常處理類(lèi)等java.applet包含創(chuàng)建Javaapplet所需的類(lèi)庫(kù)java.io包含輸入和輸出相關(guān)的類(lèi)庫(kù)java.util包含集合類(lèi)、隨機(jī)數(shù)生成類(lèi)等包含實(shí)現(xiàn)網(wǎng)絡(luò)編程的類(lèi)庫(kù)java.sql包含實(shí)現(xiàn)數(shù)據(jù)庫(kù)編程的類(lèi)庫(kù)java.text包含文本、日期、數(shù)值和消息格式化處理相關(guān)的類(lèi)庫(kù)java.time包含日期和時(shí)間處理相關(guān)的類(lèi)庫(kù)其中,java.lang
包是所有類(lèi)庫(kù)的基礎(chǔ),使用該包中的類(lèi)庫(kù)時(shí),無(wú)須使用
import
語(yǔ)句導(dǎo)入就可以直接使用該包中類(lèi)的常量和方法。
Java
提供了
4
種訪(fǎng)問(wèn)控制修飾符,它們用于控制類(lèi)、成員變量、成員方法和構(gòu)造方法的訪(fǎng)問(wèn)權(quán)限。1.訪(fǎng)問(wèn)控制修飾符protected(受保護(hù))
private(私有)public(公共)訪(fǎng)問(wèn)控制修飾符default(默認(rèn))訪(fǎng)問(wèn)權(quán)限publicprotecteddefaultprivate同一個(gè)類(lèi)√√√√同一個(gè)包中的其他類(lèi)√√√×不同包中的子類(lèi)√√××不同包中的非子類(lèi)√×××
對(duì)象的訪(fǎng)問(wèn)權(quán)限public
可以修飾類(lèi)、成員變量、成員方法和構(gòu)造方法。protected
可以修飾成員變量、成員方法和構(gòu)造方法,不可以修飾類(lèi)。default
可以修飾類(lèi)、成員變量、成員方法和構(gòu)造方法。private
可以修飾成員變量、成員方法和構(gòu)造方法,不可以修飾類(lèi)。局部變量
局部變量只能在方法或語(yǔ)句塊內(nèi)部被訪(fǎng)問(wèn),不能使用訪(fǎng)問(wèn)控制修飾符修飾。ClassA
類(lèi)和
ClassB
類(lèi)位于
mypack1
包中,其中的
ClassA
類(lèi)是
public
類(lèi)型,ClassC
類(lèi)和
ClassD
類(lèi)位于mypack2包中,且ClassC類(lèi)是ClassA類(lèi)的子類(lèi),在
ClassA
類(lèi)中定義了4個(gè)成員變量和4個(gè)成員方法,類(lèi)及其成員的結(jié)構(gòu)(1)(2)(3)(4)
在
ClassA
類(lèi)中,可以訪(fǎng)問(wèn)
ClassA類(lèi)的num1、num2、num3和num4變量,以及a()、b()、c()和d()方法。
在ClassC類(lèi)中,可以訪(fǎng)問(wèn)ClassA類(lèi)的num1和num2變量,以及a()和b()方法。
在ClassB類(lèi)中,可以訪(fǎng)問(wèn)ClassA類(lèi)的
num1、num2和num3變量,以及a()、b()和c()方法。
在ClassD類(lèi)中,可以訪(fǎng)問(wèn)ClassA類(lèi)的num1變量和a()方法。訪(fǎng)問(wèn)ClassA類(lèi)的成員變量和成員方法的權(quán)限2.static修飾符(1)使用static修飾成員變量靜態(tài)變量定義
在類(lèi)中使用static關(guān)鍵字聲明的成員變量,稱(chēng)為靜態(tài)變量,所有對(duì)象共享同一份內(nèi)存。靜態(tài)變量訪(fǎng)問(wèn)
可通過(guò)類(lèi)名或?qū)ο竺L(fǎng)問(wèn)靜態(tài)變量,其內(nèi)存僅在類(lèi)加載時(shí)分配一次,不受對(duì)象數(shù)量影響。實(shí)例變量特性
未用static修飾的成員變量為實(shí)例變量,每個(gè)對(duì)象擁有獨(dú)立的內(nèi)存空間,需通過(guò)對(duì)象名訪(fǎng)問(wèn)。實(shí)例變量創(chuàng)建
每次創(chuàng)建新對(duì)象,系統(tǒng)將為其實(shí)例變量分配獨(dú)立內(nèi)存,保證各對(duì)象數(shù)據(jù)的獨(dú)立性。定義限制
使用static關(guān)鍵字修飾的成員方法,稱(chēng)為靜態(tài)方法,可在類(lèi)級(jí)別調(diào)用,無(wú)需實(shí)例化對(duì)象。靜態(tài)方法(2)使用static修飾成員方法
靜態(tài)方法內(nèi)不可使用this關(guān)鍵字,無(wú)法直接訪(fǎng)問(wèn)實(shí)例變量與實(shí)例方法,僅能調(diào)用靜態(tài)變量和靜態(tài)方法?!具\(yùn)行結(jié)果】實(shí)例:3-9
使用static修飾符【參考代碼】/*StaticExample.java*/publicclassStaticExample{staticinta=100; //定義靜態(tài)變量……(詳見(jiàn)教材)
通過(guò)對(duì)象
se1
對(duì)靜態(tài)變量
a
和實(shí)例變量
b
重新賦值后,通過(guò)對(duì)象
se2
訪(fǎng)問(wèn)
a
得到修改后的值,說(shuō)明所有對(duì)象共享靜態(tài)變量,通過(guò)對(duì)象
se2訪(fǎng)問(wèn)b得到初始值,說(shuō)明每個(gè)對(duì)象的實(shí)例變量都有自己的內(nèi)存空間。(3)使用static修飾語(yǔ)句塊靜態(tài)語(yǔ)句塊定義
靜態(tài)語(yǔ)句塊
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)語(yǔ)文作文教學(xué)技巧及練習(xí)
- 檢驗(yàn)科基礎(chǔ)知識(shí)考試題庫(kù)全面匯編
- 教師崗位職責(zé)與工作手冊(cè)
- 企業(yè)研發(fā)項(xiàng)目管理職責(zé)說(shuō)明
- 企業(yè)合同報(bào)價(jià)澄清函范本及應(yīng)用指南
- 臨床規(guī)范處方書(shū)寫(xiě)模板標(biāo)準(zhǔn)
- 建筑工程分包單位評(píng)價(jià)與選取指南
- 中小學(xué)教師教學(xué)科研能力提升
- 少兒口才訓(xùn)練基礎(chǔ)課程計(jì)劃
- 九年級(jí)英語(yǔ)期末教學(xué)總結(jié)與反思
- 基于大模型的智能體應(yīng)用場(chǎng)景能力要求
- 2025年山西大地環(huán)境投資控股有限公司社會(huì)招聘116人備考題庫(kù)完整答案詳解
- 醫(yī)藥行業(yè)市場(chǎng)前景及投資研究報(bào)告:In Vivo CARTBD賽道早期技術(shù)廣闊前景
- 2025年書(shū)記員面試題(附答案)
- 2025年1月國(guó)開(kāi)(中央電大)法學(xué)本科《知識(shí)產(chǎn)權(quán)法》期末考試試題及答案
- 小學(xué)蘇教版科學(xué)二年級(jí)上冊(cè)(2024)知識(shí)點(diǎn)梳理及2025秋期末測(cè)試卷
- 人文英語(yǔ)3-0012-國(guó)開(kāi)機(jī)考復(fù)習(xí)資料
- 第二類(lèi)精神藥品質(zhì)量管理制度
- DLT5196-2016 火力發(fā)電廠(chǎng)石灰石-石膏濕法煙氣脫硫系統(tǒng)設(shè)計(jì)規(guī)程
- 口袋公園設(shè)計(jì)方案
- 戶(hù)口本西語(yǔ)翻譯模板
評(píng)論
0/150
提交評(píng)論