九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > PPT文檔下載  

第4章面向?qū)ο缶幊逃?jì)算機(jī)教學(xué)課件

  • 資源ID:61734468       資源大?。?span id="24d9guoke414" class="font-tahoma">153.50KB        全文頁(yè)數(shù):41頁(yè)
  • 資源格式: PPT        下載積分:20積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機(jī):
溫馨提示:
用戶(hù)名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

第4章面向?qū)ο缶幊逃?jì)算機(jī)教學(xué)課件

1第第4章章 面向?qū)ο缶幊堂嫦驅(qū)ο缶幊?主要任務(wù): 理解面向?qū)ο缶幊痰幕靖拍?了解類(lèi)的封裝方法 如何創(chuàng)建類(lèi)和對(duì)象 了解成員變量和成員方法的特性 學(xué)習(xí)使用OOP方式進(jìn)行程序設(shè)計(jì) 2實(shí)驗(yàn)安排實(shí)驗(yàn)安排 地點(diǎn):第9實(shí)驗(yàn)樓512和518;3實(shí)驗(yàn)安排實(shí)驗(yàn)安排 分為2個(gè)部分: 雙周周二晚上沒(méi)課的同學(xué)上實(shí)驗(yàn)課,從 7:0010:30,具體為第4、6、8、 10、12、14周; 單周周二晚上有課的同學(xué),周二和周四分2次上實(shí)驗(yàn)課,從9:00到10:30;具體為第5、7、9、11、13、15周;44.3 成員變量與封裝成員變量與封裝l成員變量描述了類(lèi)和對(duì)象的狀態(tài),有時(shí)也稱(chēng)為屬性、數(shù)據(jù)、域(field)。l對(duì)成員變量的操作實(shí)際上就是改變類(lèi)和對(duì)象的狀態(tài),使之能滿(mǎn)足程序的需要。與類(lèi)相似,成員變量也有很多修飾符,用來(lái)控制對(duì)成員變量的訪(fǎng)問(wèn),實(shí)現(xiàn)對(duì)類(lèi)和對(duì)象的封裝。54.3.1成員變量的聲明成員變量的聲明l 例4.4 顯示當(dāng)前日期和時(shí)間,運(yùn)行結(jié)果見(jiàn)圖:6import java.awt.Graphics;import java.applet.Applet;import java.util.Calendar;class Time private Calendar t; private int y, m, d, hh, mm, ss;7 Time () t=Calendar.getInstance(); y=t.get(t.YEAR); m=t.get(t.MONTH)+1; d=t.get(t.DATE); hh=t.get(t.HOUR_OF_DAY); mm=t.get(t.MINUTE); ss=t.get(t.SECOND); 8public String getDate() return y+ 年+m+月+d+日; public String getTime() String s=hh+ 時(shí)+mm+分+ss+秒; return s; 9public class ShowTime extends Applet Time t=new Time(); public void paint(Graphics g) g.drawString(當(dāng)前日期:+t.getDate(),50,40); g.drawString(當(dāng)前時(shí)間:+t.getTime(),50,80); 104.3.2 成員變量的修飾成員變量的修飾l成員變量的聲明語(yǔ)句有如下格式: public private protected package / 訪(fǎng)問(wèn)控制修飾符 static final transient volatile 111訪(fǎng)問(wèn)控制權(quán)限l(1)public 公共變量 由public修飾的變量稱(chēng)為公共變量,可被任何包中的任何類(lèi)訪(fǎng)問(wèn),只有在確認(rèn)任何外部訪(fǎng)問(wèn)都不會(huì)帶來(lái)不良后果的情況下才將成員聲明為公共的。公共變量對(duì)任何類(lèi)都是可見(jiàn)的,因此它沒(méi)有秘密可言,不具有數(shù)據(jù)保護(hù)功能。 l(2)private私有變量 由private修飾的變量稱(chēng)為私有變量,只能被聲明它的類(lèi)所使用,拒絕任何外部類(lèi)的訪(fǎng)問(wèn)。私有變量是不公開(kāi)的,它們得到了最好的保護(hù),這是對(duì)類(lèi)進(jìn)行封裝時(shí)使用的主要方法。12l(3)protected 受保護(hù)變量 由protected修飾的變量稱(chēng)為受保護(hù)變量,可被聲明它的類(lèi)和派生的子類(lèi)以及同一個(gè)包中的類(lèi)訪(fǎng)問(wèn)。 l(4)package包變量 由package修飾的變量稱(chēng)為包變量,在聲明時(shí)常常省略package關(guān)鍵字,即沒(méi)有修飾符的成員被視為包成員。包成員可被聲明它的類(lèi)和同一個(gè)包中的其它類(lèi)(包括派生子類(lèi))所訪(fǎng)問(wèn),在其它包中的子類(lèi)則不能訪(fǎng)問(wèn)父類(lèi)的包成員。 132static 靜態(tài)變量lstatic聲明的成員變量被視為類(lèi)的成員變量,而不把它當(dāng)作實(shí)例對(duì)象的成員變量。換句話(huà)說(shuō),靜態(tài)變量是類(lèi)固有的,可以直接引用,其它成員變量?jī)H僅被聲明,生成實(shí)例對(duì)象后才存在,才可以被引用。基于這樣的事實(shí),也把靜態(tài)變量稱(chēng)為類(lèi)變量,非靜態(tài)變量稱(chēng)為實(shí)例變量。相應(yīng)地,靜態(tài)方法稱(chēng)為類(lèi)方法,非靜態(tài)方法稱(chēng)為實(shí)例方法。 14例4.5 靜態(tài)變量的使用。class StaticDemo static int x; int y; static public int getX() return x; static public void setX(int newX) x = newX; 15 public int getY() return y; public void setY(int newY) y = newY; 16public class ShowDemo public static void main(String args) System.out.println(靜態(tài)變量x=+StaticDemo.getX(); System.out.println(實(shí)例變量y=+StaticDemo.getY(); / 非法,編譯時(shí)將出錯(cuò) StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo();17 a.setX(1); a.setY(2); b.setX(3); b.setY(4); System.out.println(靜態(tài)變量a.x=+a.getX(); System.out.println(實(shí)例變量a.y=+a.getY(); System.out.println(靜態(tài)變量b.x=+b.getX(); System.out.println(實(shí)例變量b.y=+b.getY(); 18對(duì)上面的源程序進(jìn)行編譯會(huì)出現(xiàn)如圖所示結(jié)果,不能進(jìn)行運(yùn)行該程序。19 將源程序中的出錯(cuò)語(yǔ)句刪除或使用解釋符/隱藏起來(lái)如: /System.out.println(“實(shí)例變量y=”+StaticDemo.getY(); / 非法,編譯時(shí)將出錯(cuò),再進(jìn)行編譯,即可執(zhí)行該程序,結(jié)果如圖所示。20從輸出結(jié)果中可以得出以下幾點(diǎn)結(jié)論 :l 類(lèi)的靜態(tài)變量可以直接引用,例如在程序中直接使用了StaticDemo.getX(),而非靜態(tài)變量則不行。類(lèi)的靜態(tài)變量相當(dāng)于某些程序語(yǔ)言的全局變量。l 靜態(tài)方法只能使用靜態(tài)變量,不能使用實(shí)例變量。 l 類(lèi)的靜態(tài)變量只有一個(gè)版本,所有實(shí)例對(duì)象引用的都是同一個(gè)版本。 l 對(duì)象實(shí)例化后,每個(gè)實(shí)例變量都被制作了一個(gè)副本,它們之間互不影響。 213final 最終變量l一旦成員變量被聲明為final,在程序運(yùn)行中將不能被改變。這樣的成員變量就是一個(gè)常量。例如: final double PI=3.14159;l該語(yǔ)句聲明一個(gè)常量PI,如果在后面試圖重新對(duì)它賦值,將產(chǎn)生編譯錯(cuò)誤。另外,常量名一般用大寫(xiě)字母。常量和直接量一樣不占用內(nèi)存空間。224transient 過(guò)渡變量lJava語(yǔ)言目前對(duì)transient修飾符沒(méi)有明確說(shuō)明,它一般用在對(duì)象序列化(object serialization)上,說(shuō)明成員變量不許被序列化。5volatile 易失變量lvolatile聲明的成員變量為易失變量,用來(lái)防止編譯器對(duì)該成員進(jìn)行某種優(yōu)化。這是Java語(yǔ)言的高級(jí)特性,僅被少數(shù)程序員使用。234.4 成員方法成員方法l對(duì)象的行為由類(lèi)的方法實(shí)現(xiàn),其它對(duì)象可以調(diào)用一個(gè)對(duì)象的方法,通過(guò)消息的傳遞實(shí)現(xiàn)對(duì)該對(duì)象行為的控制。l下面討論如何通過(guò)方法影響對(duì)象的行為。244.4.1 成員方法的設(shè)計(jì)成員方法的設(shè)計(jì)l類(lèi)的設(shè)計(jì)集中體現(xiàn)在成員方法的設(shè)計(jì)上。良好的設(shè)計(jì)可以使類(lèi)更加強(qiáng)壯,功能更加完善。成員方法的設(shè)計(jì)應(yīng)該從類(lèi)的整體行為出發(fā),能正確響應(yīng)外部消息,自然地改變對(duì)象的狀態(tài),并符合相對(duì)獨(dú)立性、結(jié)構(gòu)清晰、可重用性強(qiáng)等編程要求。l來(lái)看下面的例子:25例4.6 方法對(duì)對(duì)象行為的影響,運(yùn)行結(jié)果見(jiàn)圖:26import java.awt.*;import java.applet.Applet;class DrawShape private int x, y, shape; public void setPos(int xPos, int yPos) x=xPos; y=yPos; 27 public void setShape(int choice) shape=choice; public void draw(Graphics g) if (shape =1) g.drawRect(x, y, 60, 60); else if (shape =2) g.drawOval(x, y, 60, 60); else g.drawString(形狀參數(shù)不對(duì)!, 20, 120); 28public class M1 extends Applet final int BOX=1, OVAL=2; DrawShape a=new DrawShape(); public void paint(Graphics g) a.setPos(40,20); a.setShape(BOX); a.draw(g); a.setPos(200,60); a.setShape(OVAL); a.draw(g); 294.4.2 成員方法的聲明與修飾成員方法的聲明與修飾l 成員方法相當(dāng)于其它語(yǔ)言的函數(shù)或過(guò)程,是命令語(yǔ)句的集合。成員方法的聲明一般放在成員變量的聲明之后,聲明語(yǔ)句的格式和順序如下: public private protected package / 訪(fǎng)問(wèn)控制修飾符 static final abstract native synchronized 返回值類(lèi)型 方法名(參數(shù)表)throws 異常類(lèi)型30不同含義的修飾符 :1final 最終方法l 方法被聲明為最終方法后,將不能被子類(lèi)覆蓋,即最終方法能被子類(lèi)繼承和使用但不能在子類(lèi)中修改或重新定義它。這種修飾可以保護(hù)一些重要的方法不被修改,尤其是那些對(duì)類(lèi)的狀態(tài)和行為有關(guān)鍵性作用的方法被保護(hù)以后,可以避免未知情況的發(fā)生。l 在OOP中,子類(lèi)可以把父類(lèi)的方法重新定義,使之具有新功能但又和父類(lèi)的方法同名、同參數(shù)、同返回值,這種情況稱(chēng)為方法覆蓋(override)。312abstract 抽象方法l 一個(gè)抽象類(lèi)可以含有抽象方法。所謂抽象方法是指不能實(shí)現(xiàn)的方法,因?yàn)樗鼪](méi)有方法體,所以抽象方法不能出現(xiàn)在非抽象類(lèi)中。l 為什么要使用抽象類(lèi)和抽象方法呢?一個(gè)抽象類(lèi)可以定義一個(gè)統(tǒng)一的編程接口,使其子類(lèi)表現(xiàn)出共同的狀態(tài)和行為,但各自的細(xì)節(jié)是不同的。子類(lèi)共有的行為由抽象類(lèi)中的抽象方法來(lái)約束,而子類(lèi)行為的具體細(xì)節(jié)則通過(guò)抽象方法的覆蓋來(lái)實(shí)現(xiàn)。這種機(jī)制可增加編程的靈活性,也是OOP繼承樹(shù)的衍生基礎(chǔ)。323native 本地方法l 用其它語(yǔ)言編寫(xiě)的方法在Java中稱(chēng)為本地方法。如果你有一個(gè)用其它語(yǔ)言如C+ 寫(xiě)成的函數(shù),希望在Java中能利用這些資源,你可以編寫(xiě)本地方法。l SDK提供了Java本地接口JNI(Java Native Interface),使得Java虛擬機(jī)能運(yùn)行嵌入在Java程序中的其它語(yǔ)言的代碼。這些語(yǔ)言包括C/C+、Fortran、匯編語(yǔ)言等等。l 嵌入外部語(yǔ)言代碼出于以下幾點(diǎn)考慮:Java系統(tǒng)包不提供對(duì)平臺(tái)依賴(lài)性程序的支持時(shí);想利用現(xiàn)有的其它語(yǔ)言資源時(shí);出于運(yùn)行速度的要求而使用其它語(yǔ)言開(kāi)發(fā)的運(yùn)行模塊。334synchronized 同步方法l 同步方法用于多線(xiàn)程編程。多線(xiàn)程在運(yùn)行時(shí),可能會(huì)同時(shí)存取一個(gè)數(shù)據(jù)。為避免數(shù)據(jù)的不一致性,應(yīng)將方法聲明為同步方法,對(duì)數(shù)據(jù)進(jìn)行加鎖,以保證線(xiàn)程的安全。詳細(xì)內(nèi)容請(qǐng)參考第8章。 5throws 異常類(lèi)型l 程序在運(yùn)行時(shí)可能發(fā)生異常現(xiàn)象。每一個(gè)異常都對(duì)應(yīng)著一個(gè)異常類(lèi),如果希望方法忽略某種異常,可將其拋出,使程序得以繼續(xù)運(yùn)行。在前面介紹的例中就使用過(guò)拋出異常throws IOException(輸入/輸出異常),有關(guān)異常處理的詳細(xì)內(nèi)容請(qǐng)參考第6章。346返回值類(lèi)型l Java要求一個(gè)方法必須聲明它的返回值類(lèi)型。如果方法沒(méi)有返回值就用關(guān)鍵字void作為返回值類(lèi)型,否則應(yīng)使用基本數(shù)據(jù)類(lèi)型或?qū)ο箢?lèi)型說(shuō)明返回值類(lèi)型,如下面的語(yǔ)句: public int getX(); void setXY(int x, int y); public String getName(); protected Object clone();l 其中,getX的返回值為int類(lèi)型,setXY沒(méi)有返回值,getName的返回值是String類(lèi)。而clone的返回值則為Object類(lèi)。357方法名l 方法名可以是任何有效的方法名可以是任何有效的Java標(biāo)識(shí)符。方法標(biāo)識(shí)符。方法名可以和成員變量同名,也可以和成員方法名可以和成員變量同名,也可以和成員方法同名。同一個(gè)類(lèi)中的方法同名現(xiàn)象在同名。同一個(gè)類(lèi)中的方法同名現(xiàn)象在OOP中中稱(chēng)為方法重載(稱(chēng)為方法重載(overload),重載使一個(gè)類(lèi)),重載使一個(gè)類(lèi)的多個(gè)方法享有同一個(gè)名稱(chēng),可以減輕程序的多個(gè)方法享有同一個(gè)名稱(chēng),可以減輕程序員的負(fù)擔(dān)。員的負(fù)擔(dān)。 8參數(shù)表l 方法的調(diào)用者正是通過(guò)參數(shù)表將外部消息傳方法的調(diào)用者正是通過(guò)參數(shù)表將外部消息傳遞給方法加以處理的。在參數(shù)表中要聲明參遞給方法加以處理的。在參數(shù)表中要聲明參數(shù)的類(lèi)型,并用逗號(hào)分隔多個(gè)參數(shù)。數(shù)的類(lèi)型,并用逗號(hào)分隔多個(gè)參數(shù)。364.4.3 方法體方法體l方法體包含在一對(duì)大括號(hào)中,即使方法體中沒(méi)有語(yǔ)句,一對(duì)大括號(hào)也是必不可少的。使用各種語(yǔ)句結(jié)構(gòu)組成方法主體,實(shí)現(xiàn)程序的功能,是設(shè)計(jì)方法體的目的。下面這段程序是一個(gè)處理格式化字符串的方法: public String toString(int arr) int i, n=arr.size(); StringBuffer s=new StringBuffer();37 s.append(); for (i=0; in; i+) s.append (Integer.toString(arri); if (in-1) s.append(,); s.append(); return s.toString();384.4.4 消息傳遞消息傳遞l 一個(gè)對(duì)象和外部交換信息主要靠方法的參數(shù)來(lái)傳遞。當(dāng)然,如果允許的話(huà),外部對(duì)象也可以直接存取一個(gè)對(duì)象的成員變量。出于整體考慮,大部分還是通過(guò)參數(shù)來(lái)傳遞。在Java中,可傳遞的參數(shù)包括任何數(shù)據(jù)類(lèi)型,前面已經(jīng)使用了基本數(shù)據(jù)類(lèi)型的參數(shù)傳遞、數(shù)組的傳遞和對(duì)象的傳遞。 l 在其它語(yǔ)言中,函數(shù)調(diào)用或過(guò)程調(diào)用有傳值調(diào)用和傳地址調(diào)用之分。 39例4.7 參數(shù)傳遞示例1class P1 public static void main(String args) int x=10, y=10; doPower(x, y); System.out.println(x=+x+, y=+y); static void doPower(int passX, int passY) passX=passX*passX; passY=passY*passY; System.out.println(passX=+passX+, passY=+passY); 40例4.8 參數(shù)傳遞示例2 class P2 public static void main(String args) Power p=new Power(); p.doPower(10,10); System.out.println(x=+p.x+, y=+p.y); class Power int x, y; void doPower(int passX, int passY) x=passX*passX; y=passY*passY; 414.4.5 Java編程小結(jié)編程小結(jié)l 源程序的文件名和程序中定義的主類(lèi)名應(yīng)保持一致,包括字母大小寫(xiě)的匹配。l Java嚴(yán)格區(qū)分大小寫(xiě),例如applet和Applet代表了不同的含義。l 語(yǔ)句以分號(hào)結(jié)束。l 程序中可加注釋?zhuān)秒p斜杠“/”引導(dǎo),“/* */”可包含多行注釋。l 注意設(shè)計(jì)一般類(lèi)與主類(lèi),一般類(lèi)可以有多個(gè),主類(lèi)只能有一個(gè),源程序名與主類(lèi)名相同。

注意事項(xiàng)

本文(第4章面向?qū)ο缶幊逃?jì)算機(jī)教學(xué)課件)為本站會(huì)員(文***)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!