




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
JAVA核心技術OOPI
類和對象回顧Java中的數(shù)據(jù)類型分為:原始數(shù)據(jù)類型和引用數(shù)據(jù)類型;在數(shù)據(jù)類型轉(zhuǎn)換中,由低類型轉(zhuǎn)至高類型,將會自動(隱式)類型轉(zhuǎn)換,而從高類型轉(zhuǎn)至低類型,則必須強制(顯式)類型轉(zhuǎn)換;Java中的數(shù)組是引用數(shù)據(jù)類型,必須由new關鍵字在堆中分配內(nèi)存;Java虛擬機的垃圾回收機制將自動釋放不再使用的內(nèi)存;使用命令行參數(shù)接收來自用戶的輸入。相關詞匯單
詞說
明Class類,種類public公共的,公有的private私有的,私人的object對象,物體encapsulation封裝,包裝attribute屬性,特征method方法member成員constructor構(gòu)造方法,構(gòu)造器類和對象I了解什么是面向?qū)ο竺嫦驅(qū)ο蟮幕靖拍铑悓ο蠓庋b繼承多態(tài)如何定義類,如何創(chuàng)建對象成員運算符訪問控制權限:public和private構(gòu)造方法什么是面向?qū)ο??ObjectOriendtedProgramming對象以…為導向的程序設計面向?qū)ο缶幊叹褪鞘褂脤ο筮M行程序設計,簡寫成OOP。面向?qū)ο蟮木幊陶Z言如今,面向?qū)ο蟮木幊趟枷胍呀?jīng)成為主流;面向?qū)ο蟮木幊陶Z言正大行其道,最具代表性的有:C++JavaC#連數(shù)據(jù)庫也開始面向?qū)ο罅?,如Oracle。面向?qū)ο蟮木幊趟枷隣OP旨在計算機程序中模擬現(xiàn)實世界中的概念在計算機程序中用相似的實體模擬現(xiàn)實世界中的實體在OOP中,現(xiàn)實世界的所有事物全都被視為對象設計和實現(xiàn)軟件系統(tǒng)的方法C語言的編程方式C語言是結(jié)構(gòu)化的編程語言(StructuredProgramming,簡作SP);強調(diào)精巧的數(shù)據(jù)結(jié)構(gòu)和優(yōu)越的算法,關注程序的運行效率;不適合于大規(guī)模的程序開發(fā);程序模塊之間協(xié)調(diào)性差,程序的重用性、安全性、健壯性和可維護性都存在較大的缺陷。SP和OOP對比SPOOP設計思路自頂向下、層次化、分解自底向上、對象化、綜合程序單元函數(shù)模塊對象設計方法程序=算法+數(shù)據(jù)結(jié)構(gòu)程序=對象=數(shù)據(jù)+方法優(yōu)點相互獨立,代碼共享接近人的思維方式模擬客觀世界缺點數(shù)據(jù)與程序不一致維護困難客觀世界的無序性概念不成熟面向?qū)ο蟮娜笤瓌t封裝繼承多態(tài)萬物皆對象世界是由什么組成的?名勝人物品動物,植物……
身邊的對象布蘭尼朱麗葉顧客姓名:朱麗葉年齡:28體重:52千克操作:購買商品姓名:布蘭尼職銜:收銀員年齡:35體重:60千克操作:收款打印賬單對象的特征——屬性屬性——對象具有的各種特征每個對象的每個屬性都擁有特定值例如:布蘭尼和朱麗葉的體重不一樣
60kg布蘭尼屬性
35歲收銀員布蘭尼對象的特征——方法方法——對象執(zhí)行的操作打單收銀方法刷卡收銀員布蘭尼對象的屬性和方法列出尼古拉斯·凱奇駕駛的這輛法拉利F360Spider的屬性和方法列出小狗對象的屬性和方法屬性:品牌:法拉利型號:F360Spider
顏色:黃色價格:380萬元方法:發(fā)動停止加速屬性:
顏色:白色方法:
叫跑吃小結(jié)1說一說教室里的對象描述他們的屬性和方法顏色:黑色品牌:BENQ投影姓名:張三年齡:20學習類型:白熾燈開關變亮變暗材制:木質(zhì)支撐物品封裝對象同時具有屬性和方法兩項特性對象的屬性和方法通常被封裝在一起,共同體現(xiàn)事物的特性,二者相輔相承,不能分割誰看見過只有“完好的零件和顏色”而不能開動的汽車?從對象抽象出“類”抽取出下列對象的屬性和方法的共同特征
轎車顧客類顧客類轎車類
…………類是模型,確定對象將會擁有的特征(屬性)和行為(方法)類是對象的類型不同于int類型:具有方法
各種口味的球狀冰淇淋球狀冰淇淋模型小結(jié)2類和對象有什么區(qū)別呢?類是抽象的概念,僅僅是模板,比如說:“人”對象是一個你能夠看得到、摸得著的具體實體,比如:“小布什”小布什普京克林頓……“人”類特征(屬性)年齡體重行為(方法)衣食住行屬性事物的特性在類中用變量表示;每個對象的每個屬性都擁有其特定的值;屬性名稱由類的所有對象共享;對象或?qū)嶓w擁有的特征在類中表示時稱為屬性。學生對象姓名年齡住址……屬性方法事物的行為和動作在類中用函數(shù)(方法)表示;每個對象都有相同的動作和行為;對象執(zhí)行的操作在類中表示為方法。學生對象吃飯方法睡覺上課……Java是面向?qū)ο蟮恼Z言
所有Java程序都以類class為組織單元關鍵字class定義自定義的數(shù)據(jù)類型
public
classHello{
publicstaticvoidmain(String[]args){
System.out.println("使用Java語言");…}}Java類模板類將現(xiàn)實世界中的概念模擬到計算機程序中publicclass
類名{
//定義屬性部分屬性1的類型屬性1;
屬性2的類型屬性2;…
屬性n的類型屬性n;
//定義方法部分方法1;
方法2;…
方法m;}定義類定義一個類的步驟1、定義類名2、編寫類的屬性3、編寫類的方法類示例2-1
使用類的思想封裝圖書館里的書籍:Book類屬性:ISBN號書名價格是否被借閱方法:借閱書籍獲取圖書詳細信息演示示例1:使用Eclipse創(chuàng)建Book類框架常見錯誤publicclass.Book{StringbookName;StringauthorName;intpageNum;booleanisAvailable;}類命名規(guī)則:1、不能使用Java關鍵字2、首字母可以為字母,也可以是“_”或“$”(建議不要這樣)3、不能包含空格或“.”號代碼錯誤如何創(chuàng)建和使用對象使用對象的步驟:使用new創(chuàng)建類的一個對象使用對象:使用“.”進行以下操作給類的屬性賦值:對象名.屬性調(diào)用類的方法:對象名.方法名()BookjavaBook=newBook();javaBook.ISBN=“ISN8892";//給屬性賦值javaBook.borrow();//調(diào)用類的方法,該方法中的操作將被執(zhí)行綜合案例編寫學生類,輸出學生相關信息編寫教員類,輸出教員相關信息學生類屬性:姓名年齡參加的課程興趣方法:顯示學員個人信息教員類屬性:姓名專業(yè)方向教授的課程教齡方法:顯示教員個人信息演示示例3:創(chuàng)建和使用類和對象小結(jié)3編寫一個音樂類,并編寫測試類顯示音樂信息編寫一個手機類,并編寫測試類顯示手機信息類的方法寫出獅子對象的“跑”方法寫出獅子對象的“叫”方法電動玩具獅子屬性:顏色:黃色行為:跑叫按此按鈕,獅子開始跑類的方法示例publicclassAutoLion{Stringcolor="黃色";
public
void
run(){System.out.println("正在以0.1米/秒的速度向前奔跑");}
publicStringbark(){Stringsound="吼";
returnsound;}}AutoLion類代碼實現(xiàn)方法名稱方法體返回類型如何定義類的方法類的方法定義類的某種行為(或功能)方法的定義方法的名稱方法的主體方法返回的數(shù)據(jù)類型定義類的方法public返回值類型方法名(){//這里編寫方法的主體}步驟一:定義方法名以及返回值步驟二:編寫方法體方法的命名如何給方法起名字?必須以字母、‘_’或‘$’開頭可以包括數(shù)字,但不能以它開頭遵循的命名規(guī)范通常方法名是一個動詞,如果有兩個以上單詞組成,第一個單詞的首字母小寫,其后單詞首字母大寫方法的返回值兩種情況如果方法具有返回值,方法中必須使用關鍵字return返回該值,返回類型為該返回值的類型如果方法沒有返回值,返回類型為void,下面是否有錯publicclassStudent{Stringname="張三";publicvoidgetName(){
returnname;}……}返回類型要匹配return
表達式;編譯錯誤常見錯誤publicclassStudent{
publicdoublegetInfo(){
doubleweight=95.5;
doubleheight=1.69;
returnweight,height;}}方法至多可以返回一個值,不能返回多個值方法調(diào)用方法是個“黑匣子”,完成某個特定的應用程序功能,并返回結(jié)果方法調(diào)用:執(zhí)行方法中包含的語句
對象名.方法名();方法調(diào)用小結(jié)方法之間允許相互調(diào)用,不需要知道方法的具體實現(xiàn),提高了效率
情況舉例1、類Student的方法a()調(diào)用Student類的方法b(),直接調(diào)用publicvoida(){b();//調(diào)用b()}2、類Student的方法a()調(diào)用類Teacher的方法b(),先創(chuàng)建類對象,然后使用“.”調(diào)用publicvoida(){Teachert=newTeacher();t.b();//調(diào)用Teacher類的b()}變量作用域3-1publicclassAutoLion{Stringcolor="黃色";publicvoidrun(){//方法1:跑
System.out.println("正在以0.1米/秒的速度向前奔跑。");}
publicStringbark(){//方法2:叫
Stringsound="吼";returnsound;}
publicStringgetColor(){//方法3:獲得顏色屬性
returncolor;}
publicStringshowLion(){//方法4:輸出類的描述信息
return"這是一個"+getColor()+"的玩具獅子!叫聲是"+sound;}}可以調(diào)用嗎?演示示例3:變量作用域變量作用域3-2變量聲明的位置決定變量作用域變量作用域確定可在程序中按變量名訪問該變量的區(qū)域…for(inti=0,a=0;i<4;i++){a++;}System.out.println(a);…a的作用域僅在for循環(huán)中代碼錯誤變量作用域3-3變量1類型變量1;變量2類型變量2;變量3類型變量3;public返回類型方法1(){
變量4類型變量4;}public返回類型方法2(){
變量5類型變量5;}publicclassAutoLion{}AutoLion類的方法別的類的方法誰能使用這些變量?方法1方法2成員變量局部變量局部變量方法調(diào)用案例編寫成績計算類(ScoreCalc)編寫測試類成績計算類屬性:3門成績(Java、C#、DB)方法:計算返回平均成績計算返回總成績演示示例4:方法調(diào)用面向?qū)ο蟮木幊趟季SScoreCalc類和
Test類publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.print("請輸入Java成績:");intjava=input.nextInt();……/*計算并顯示輸出*/inttotal=java+c+db;doubleavg=total/3;System.out.print("總成績:"+total);System.out.print("\n平均分:"+avg);}一次還可以接受,如果還要再執(zhí)行這個功能,難道還要重復再寫?calcDiffTimecalcTotalScore()ScoreCalcshowTotalScore()calcAvg()showAvg()
main(){//程序入口
//計算并輸出總成績
//計算并輸出平均分
}Test調(diào)用調(diào)用類的方法實現(xiàn)某個特定的功能,別的類不需要知道它如何實現(xiàn)!知道了實現(xiàn)此功能的類和它的方法名,就可以直接調(diào)用了,不用重復寫代碼!為什么需要包生活案例
文檔分門別類,易于查找不同內(nèi)容的文檔可以放在不同的袋子中,擁有相同的名字,避免沖突易于管理包包——解決類的同名問題允許類組成較小的單元(類似文件夾),易于找到和使用相應的文件防止命名沖突更好的保護類、數(shù)據(jù)和方法A.java包如何創(chuàng)建包packages1java.sg.chap7;publicclassAccpSchool{……publicStringtoString(){……}}包名使用package聲明包,以分號結(jié)尾如果有包的聲明,一定作為Java源代碼的第一條語句包命名規(guī)范包名由小寫字母組成,不能以圓點開頭或結(jié)尾自己設定的包名之前最好加上唯一的前綴,通常使用組織倒置的網(wǎng)絡域名。如:域名
自己設定的包名部分依不同機構(gòu)各自內(nèi)部的規(guī)范不同而不同packagemypackage;package
net.javagroup.mypackage;package
net.javagroup.research.powerproject;部門名項目名
package.mypackage;×用Eclipse創(chuàng)建包使用Eclipse創(chuàng)建包的兩種方法:分別創(chuàng)建包和類:創(chuàng)建項目→創(chuàng)建包→創(chuàng)建類創(chuàng)建類的過程中創(chuàng)建類所在的包創(chuàng)建項目→創(chuàng)建類(在此過程中聲明所屬包,如無聲明,則顯示“缺省包”)如何導入包為了使用不在同一包中的類,需要在Java程序中使用import關鍵字導入這個類importjava.util.*;//導入java.util包中所有類importjava.lang.*;//導入java.lang包中所有類關鍵字import并不陌生import
包名.類名;1、系統(tǒng)包(eg:java.lang)2、自定義包:net.javagroup*:指包中的所有類Hello:指包中的Hello類JavaDoc注釋回顧學過的注釋方式單行注釋://這里是注釋多行注釋:/*這里是注釋1
這里是注釋2*/JavaDoc注釋:使用“/**”開始和“*/”結(jié)束,用來注釋類,方法等/**
*CalcScore類
*@authorChris
*@version1.02007/06/21
*/描述信息@author:描述作者信息@version:描述版本信息方法的JavaDoc注釋
給ScoreCalc類的方法添加JavaDoc注釋
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司資金貸款合同范本
- 公司變造勞動合同范本
- 醫(yī)療器械保險銷售合同范本
- alc工程合同范本
- 從屬許可合同范本
- 保姆英語合同范本
- 上海遮光窗簾加盟合同范本
- 臨時活動勞務派遣合同范例
- 買賣轉(zhuǎn)讓二手車合同范本
- 農(nóng)村空閑用地租賃合同范本
- 回彈法測試原始記錄表
- 中建綜合支吊架施工方案
- 干部檔案目錄樣表
- 建筑施工規(guī)范大全
- 幼兒園開學家長會PPT模板(含完整內(nèi)容)
- 表冷器更換施工方案
- 創(chuàng)意美術課3歲-12歲大師課《彼埃.蒙德里安》課件
- 瀝青集料篩分反算計算表格(自動計算)
- 哲學與人生(中職)PPT完整全套教學課件
- 惡性高熱課件
- 社區(qū)免費使用房屋協(xié)議書
評論
0/150
提交評論