資源描述:
《core java筆記》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、JAVA的面向?qū)ο缶幊?-------課堂筆記面向?qū)ο笾饕槍?duì)面向過程。面向過程的基本單元是函數(shù)。什么是對(duì)象:EVERYTHINGISOBJECT(萬物皆對(duì)象)所有的事物都有兩個(gè)方面:有什么(屬性):用來描述對(duì)象。能夠做什么(方法):告訴外界對(duì)象有那些功能。后者以前者為基礎(chǔ)。大的對(duì)象的屬性也可以是一個(gè)對(duì)象。為什么要使用面向?qū)ο螅菏紫?,面向?qū)ο蠓先祟惪创挛锏囊话阋?guī)律。對(duì)象的方法的實(shí)現(xiàn)細(xì)節(jié)是屏蔽的,只有對(duì)象方法的實(shí)現(xiàn)者了解細(xì)節(jié)。方法的定義非常重要。方法有參數(shù),也可能有返回值。注意區(qū)分:對(duì)象(本身)、對(duì)象的實(shí)現(xiàn)者、對(duì)象的調(diào)
2、用者。分析對(duì)象主要從方法開始。我們通過類來看待對(duì)象,類是對(duì)象的抽象。其次,采用面向?qū)ο蠓椒梢允瓜到y(tǒng)各部分各司其職、各盡所能。對(duì)象之間的耦合性一定要低(比如不同硬盤和不同主板之間的關(guān)系)。這樣才能使每個(gè)對(duì)象本身做成最好的。對(duì)于對(duì)象的要求:高內(nèi)聚、低耦合,這樣容易拼裝成為一個(gè)系統(tǒng)。實(shí)現(xiàn)高內(nèi)聚就是要最大限度低提高復(fù)用性(復(fù)用性好是因?yàn)楦邇?nèi)聚)??蓮?fù)用性是OOP的基礎(chǔ)。比較面向過程的思想和面向?qū)ο蟮乃枷耄好嫦蜻^程的思想:由過程、步驟、函數(shù)組成,以過程為核心;面向?qū)ο蟮乃枷耄阂詫?duì)象為中心,先開發(fā)類,得到對(duì)象,通過對(duì)象之間相互通信
3、實(shí)現(xiàn)功能。面向過程是先有算法,后有數(shù)據(jù)結(jié)構(gòu)。面向?qū)ο笫窍扔袛?shù)據(jù)結(jié)構(gòu),然后再有算法。在用面向?qū)ο笏枷腴_發(fā)的過程中,可以復(fù)用對(duì)象就進(jìn)行復(fù)用,如無法進(jìn)行復(fù)用則開發(fā)新的對(duì)象。開發(fā)過程是用對(duì)個(gè)簡(jiǎn)單的對(duì)象的多個(gè)簡(jiǎn)單的方法,來實(shí)現(xiàn)復(fù)雜的功能。從語法上來看,一個(gè)類是一個(gè)新的數(shù)據(jù)類型。在面向?qū)ο缶幊讨?,除了?jiǎn)單數(shù)據(jù)類型,就是對(duì)象類型。定義類的格式:classStudent{代碼}注意類名中單詞的首字母大寫。實(shí)例變量:定義在類中但在任何方法之外。(New出來的均有初值)局部變量:定義在方法之中的變量。局部變量要先賦值,再進(jìn)行運(yùn)算,而實(shí)例變量
4、均已經(jīng)賦初值。這是局部變量和實(shí)例變量的一大區(qū)別。實(shí)例變量的對(duì)象賦值為null。局部變量不允許范圍內(nèi)定義兩個(gè)同名變量。實(shí)例變量的作用域在本類中完全有效,當(dāng)被其他的類調(diào)用的時(shí)候也可能有效。實(shí)例變量和局部變量允許命名沖突。書寫方法的格式:修飾符返回值方法名調(diào)用過程中方法體可能出現(xiàn)的例外publicint/voidaddNumber(參數(shù))throwExcepion{}例:publicintaddNumber(inta,intb){}注:方法名中的參數(shù)inta,intb為局部變量類方法中的一類特殊方法:構(gòu)造方法。構(gòu)造方法是當(dāng)用類
5、生成對(duì)象時(shí),系統(tǒng)在生成對(duì)象的過程中利用的方法。注意:構(gòu)造方法在生成對(duì)象的時(shí)候會(huì)被調(diào)用,但并不是構(gòu)造方法生成了對(duì)象。構(gòu)造方法沒有返回值。格式為:public方法名。構(gòu)造方法的方法名與類名相同。構(gòu)造方法是在對(duì)象生成的過程中自動(dòng)調(diào)用,不可能利用指令去調(diào)用。在一個(gè)對(duì)象的生成周期中構(gòu)造方法只用一次,一旦這個(gè)對(duì)象生成,那么這個(gè)構(gòu)造方法失效。用類來生成對(duì)象的語句:Students=newStudent()。第一個(gè)Student表示這是用Student類進(jìn)行定義?!癝tudent()”表示調(diào)用一個(gè)無參數(shù)的構(gòu)造方法。如果()中有參數(shù),則系
6、統(tǒng)構(gòu)造對(duì)象的過程中調(diào)用有參的方法。此時(shí)S稱為一個(gè)對(duì)象變量。?Students的存儲(chǔ)區(qū)域存放的是地址:一個(gè)對(duì)象在硬盤上占有一個(gè)連續(xù)地址,首地址賦予s空間。S稱為對(duì)象Student的引用。注意:在對(duì)象變量中存放的是引用(地址);在簡(jiǎn)單變量中存放的是數(shù)值。可以構(gòu)造多個(gè)構(gòu)造方法,但多個(gè)構(gòu)造方法的參數(shù)表一定不同,參數(shù)順序不同即屬于不同的構(gòu)造方法:publicstudent(stringname,inta){}publicstudent(inta,stringname){}為兩個(gè)不同的構(gòu)造方法。如果我們未給系統(tǒng)提供一個(gè)構(gòu)造方法,那么
7、系統(tǒng)會(huì)自動(dòng)提供一個(gè)為空的構(gòu)造方法。練習(xí):寫一個(gè)類,定義一個(gè)對(duì)象,定義兩個(gè)構(gòu)造方法:一個(gè)有參,一個(gè)無參。(編寫一個(gè)程序驗(yàn)證對(duì)象的傳遞的值為地址)注意下面這種形式:staticvoidchangename(studentstu){stu.setName“LUCY”}注意生成新的對(duì)象與舊對(duì)象指向無關(guān),生成新對(duì)象生命消亡與舊對(duì)象無關(guān)。面向?qū)ο蠓椒ǖ闹剌d(overloading)和覆蓋(overriding)。在有些JAVA書籍中將overriding稱為重載,overloading稱為過載。Overloading在一個(gè)類中可以定
8、義多個(gè)同名方法,各個(gè)方法的參數(shù)表一定不同。但修飾詞可能相同,返回值也可能相同。在程序的編譯過程中根據(jù)變量類型來找相應(yīng)的方法。因此也有人認(rèn)為overloading是編譯時(shí)的多態(tài),以后我們還會(huì)學(xué)到運(yùn)行時(shí)多態(tài)。為什么會(huì)存在overloading技術(shù)呢?作為應(yīng)對(duì)方法的細(xì)節(jié)。利用類型的差異來影響對(duì)方法的調(diào)用。吃()可以分為吃肉