第04章 面向?qū)ο缶幊蘝04類和包
單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,*,第四章 面向?qū)ο缶幊?本章主要內(nèi)容,4.1,簡介,4.2,面向?qū)ο蟮幕靖拍?4.3,面向?qū)ο蟮幕菊Z法,4.4,類和包,4.5,對象、封裝,4.6,類的方法,4.7,繼承和多態(tài),4.8,接口和抽象類,4.9,面向?qū)ο箝_發(fā)概念,課程回顧,請舉例說明類與對象的區(qū)別與聯(lián)系,屬性,方法,類是模子,確定對象將會擁有的特征(屬性)和行為(方法),類是抽象的概念,僅僅是模板,對象是一個你能夠看得到、摸得著的具體實(shí)體,對象同時具有屬性和方法兩項(xiàng)特性,屬性:對象具有的各種特征,方法:對象執(zhí)行的操作,掌握類的創(chuàng)建,理解包的含義,理解訪問控制符,public,、,default,、,protected,、,private,本章目標(biāo),4.4,類和包,非但不能強(qiáng)制自然,,還要順從自然。,埃斯庫羅斯,4.4.1,創(chuàng)建類,在面向?qū)ο笾?,我們把類似于“人類”這種寬泛的種類概念,我們用,Java,程序來實(shí)現(xiàn)關(guān)于人這個類的構(gòu)造,:,參看課本例,4.9,類命名規(guī)則:,1,、不能使用,Java,關(guān)鍵字,2,、首字母可以為字母,也可以是,“,_,”,或,“,$,”,(,建議不要這樣,),3,、不能包含空格或,“,.,”,號,所有,Java,程序都以類,class,為組織單元,關(guān)鍵字,class,定義自定義的數(shù)據(jù)類型,Java,類模板,類將現(xiàn)實(shí)世界中的概念模擬到計(jì)算機(jī)程序中,class,類名,/,定義屬性部分,屬性,1,的類型 屬性,1;,屬性,2,的類型 屬性,2;,屬性,n,的類型 屬性,n;,/,定義方法部分,方法,1;,方法,2;,方法,m;,定義類,定義一個類的步驟,1,、定義類名,public class Human,2,、編寫類的屬性,String name;,int,age;,3,、編寫類的方法,public void,sayHello,(),System.out.println(“Hello,Human”);,為什么需要包,生活案例,文檔分門別類,易于查找,不同內(nèi)容的文檔可以放在不同的,袋子中,擁有相同的名字,避免沖突,易于管理,為什么需要包,樹形文件系統(tǒng),使用目錄解決文件同名沖突問題,如何存放兩個同名的類而不沖突?,Sort.java,插入排序,Sort.java,冒泡排序,包,包,解決類的同名問題,允許類組成較小的單元(類似,文件夾),易于找到和使用相,應(yīng)的文件,防止命名沖突,更好的保護(hù)類、數(shù),據(jù)和方法,A.java,包,如何創(chuàng)建包,package,com.ntc.sample,;,class Human,public String,getName,(),包名,使用,package,聲明包,,以分號結(jié)尾,如果有包的聲明,一定,作為,Java,源代碼的第一條,語句,包命名規(guī)范,包名由小寫字母組成,不能以圓點(diǎn)開頭或結(jié)尾,自己設(shè)定的包名之前最好加上唯一的前綴,通常使用組織倒置的網(wǎng)絡(luò)域名。如:域名,自己設(shè)定的包名部分依不同機(jī)構(gòu)各自內(nèi)部的規(guī)范不同而不同,package,mypackage,;,package,com.ntc,.mypackage,;,package,com.ntc,.research.powerproject,;,部門名,項(xiàng)目名,package.,mypackage,;,用,Eclipse,創(chuàng)建包,使用,Eclipse,創(chuàng)建包的兩種方法:,分別創(chuàng)建包和類:,創(chuàng)建項(xiàng)目,創(chuàng)建包,創(chuàng)建類,創(chuàng)建類的過程中創(chuàng)建類所在的包,創(chuàng)建項(xiàng)目,創(chuàng)建類(在此過程中聲明所屬包,如無聲明,則顯示“缺省包”),包與目錄的關(guān)系,創(chuàng)建好的包和,Java,源文件是如何存儲的?,創(chuàng)建包,com.ntc.sample,,即創(chuàng)建了目錄結(jié)構(gòu):,.com,ntc,sample,Chapter04,com,ntc,sample,Human.java,Father.java,在包資源管理器和導(dǎo)航器中觀察包中的目錄結(jié)構(gòu),如何導(dǎo)入包,為了使用不在同一包中的類,需要在,Java,程序中使用,import,關(guān)鍵字導(dǎo)入這個類,import,java.util,.*;/,導(dǎo)入,java.util,包中所有類,import,java.lang,.*;/,導(dǎo)入,java.lang,包中所有類,import,包名,.,類名;,1,、系統(tǒng)包,(,eg,:,java.lang,),2,、自定義包:,com.ntc.sample,*:指包中的所有類,Human,:指包中的,Human,類,關(guān)鍵字,import,并不陌生,4.4.2,類和包之間的關(guān)系,包這種技術(shù)有以下四個好處:,定位類:具有相似功能的類可以放置在同一個包中,這樣可以很容易地查找定位類,避免命名沖突:在開發(fā)由其他程序員共享的可復(fù)用類時,會發(fā)生命名沖突,可以把類放在不同包中,通過包名引用類可以避免命名沖突,可以方便地分發(fā)軟件,控制類之間的訪問,在同一層包目錄下,,CLASS,可以互相訪問,public,和,protected,屬性。,在不同一層包目錄下,,CLASS,只可以互相訪問,public,屬性。,4.4.3,類、成員變量的修飾符,類的修飾字:,public|default(,可缺省,非公開類,)abstract|final,4.4.3,類、成員變量的修飾符,成員變量的修飾字:,public|protected|private static final transient volatile,4.4.3,類、成員變量的修飾符,成員,方法,的修飾字:,public|protected|private static final transient volatile,4.4.3,類、成員變量的修飾符,定義一個類的步驟,如何聲明包?如何導(dǎo)入包?,包與存儲,Java,源文件的目錄結(jié)構(gòu)的關(guān)系是什么?,有哪些訪問控制符,分別說明它們的范圍,總結(jié),