freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java語言基礎(chǔ)教程ppt-資料下載頁

2025-01-06 04:55本頁面
  

【正文】 age.)。 } public Student(int age ) { =age。 (Initialize student with age.)。 } public Student(String name ) { =name。 (Initialize student with name.)。 } } public class TestThis { public static void main(String[] args) { Student st1= new Student()。 new Student(24,Jacky)。 } } 程序 用構(gòu)造方法完成初始化 ? 可以使用自定義的構(gòu)造方法在方法體內(nèi)初始化成員 ? 可以在構(gòu)造方法中使用 this()調(diào)用其它構(gòu)造方法以減少代碼冗余 ? 構(gòu)造方法內(nèi) this必須在第一行 ? 只能調(diào)用一次 this()不允許調(diào)用兩次 ? this()只能在構(gòu)造器中使用,其他成員方法不得調(diào)用。 static 關(guān)鍵字 ? 聲明為 static的成員方法和變量在內(nèi)存中固定只存在一份,也就是說所有類都可以共享使用的 ? 聲明為靜態(tài)的成員變量和成員方法在類內(nèi)部可以直接使用,在類外部可以通過類名加句點(diǎn)的方式直接訪問,而不必實(shí)例化再使用 ? 靜態(tài)方法內(nèi)部不能調(diào)用非靜態(tài)方法,因?yàn)殪o態(tài)方法本身是不會(huì)實(shí)例化的 。this在靜態(tài)方法中沒有意義 對(duì)象的清理 ? C語言和 c++是通過程序員自己定義對(duì)象的生命周期,你必須在適當(dāng)?shù)臅r(shí)候自己寫程序清除不再使用的對(duì)象空間 ? Java將釋放無用內(nèi)存空間的任務(wù)交給了 Java虛擬機(jī),通過垃圾回收器來回收無用對(duì)象的內(nèi)存空間 ? 程序員無需強(qiáng)制垃圾回收器立即執(zhí)行進(jìn)行清除工作,只有當(dāng)內(nèi)存資源不夠用時(shí)垃圾回收器才開始真正回收空間 ,所以整個(gè)程序過程中垃圾回收器可能不需要工作。 什么樣的對(duì)象將被垃圾回收 ? class Student { int age。 String name。 public Student(String n ) { name=n。 } public static void p(){ Student st1=new Student(Peter)。 Student st2=new Student(Julie)。 st1=st2。 st2=null。 } } public class TestGc { public static void main(String[] args) { ()。 } } 程序 靜態(tài)方法 p中首先創(chuàng)建了兩個(gè)學(xué)生 Peter和 Julie,然后引用 st1指向 st2,這時(shí) st1和 st2同時(shí)指向 Julie,對(duì)象 Peter沒有引用變量引用,所以處于待回收狀態(tài), st2賦空值后仍然有 st1指向 Julie所以 Julie這時(shí)還不是垃圾,當(dāng)方法 p()執(zhí)行完成返回 main方法時(shí),局部變量 st1和 st2超出作用域,結(jié)束生命。內(nèi)存堆中的 Peter和 Julie都變成了垃圾,處于待回收狀態(tài) 。 處于待回收狀態(tài)只是告訴虛擬機(jī)哪些對(duì)象是垃圾,并不不知道垃圾回收器什么時(shí)候回收他們 。當(dāng)內(nèi)存資源緊張時(shí),垃圾回收器會(huì)及時(shí)工作清理這些垃圾。 finalize() 在某些情況下回收垃圾對(duì)象時(shí)需要結(jié)束與這個(gè)對(duì)象相關(guān)的一些工作,比如說某個(gè)對(duì)象打開了一個(gè)文件,那么清除這個(gè)對(duì)象時(shí)就需要關(guān)閉這個(gè)文件,否則這個(gè)文件在垃圾對(duì)象被回收以后就無法再編輯和關(guān)閉了 finalize方法可以完成這些工作。 finalize方法在垃圾回收發(fā)生之前調(diào)用,用來驗(yàn)證回收條件是否成熟,比如你的對(duì)象可能還與其他對(duì)象聯(lián)系在一起,這時(shí)在 finalize方法中設(shè)定條件,阻止垃圾回收,使垃圾對(duì)象“復(fù)活” 。 類成員修飾符 ? public 指定類成員為 public時(shí),該類成員在任何類中都可以通過一個(gè)該類對(duì)象的引用來進(jìn)行訪問,當(dāng)然該類內(nèi)部可直接訪問。 ? private即聲明說這是私有的,指定成員變量或方法為 private時(shí),該類成員變?yōu)榇祟惖? “ 私有財(cái)產(chǎn) ” ,只能在該類中訪問。 ? defualt即缺省,修飾符為隱含的 package,可以在該類中訪問,也能夠在同一包中的類訪問。但在不同包中即使是其子類也無法訪問。 ? protected 說明該成員是受保護(hù)的,可以在該類中訪問。同時(shí)同一包中的類也可以對(duì)其進(jìn)行訪問,不同包的子類也可以進(jìn)行訪問。 類修飾符: public、 default ? 指定為 public時(shí),可以通過 import指令對(duì)該類進(jìn)行復(fù)用。如果缺省則是隱含的 package訪問修飾語,這時(shí)只有在相同包里的類才能調(diào)用該類。 具體隱藏實(shí)現(xiàn)是面向?qū)ο笤O(shè)計(jì)中一個(gè)非常重要的概念,通過使用訪問控制修飾符,把類中的無須公開的數(shù)據(jù)與方法封裝起來,對(duì)外隱藏了類功能的具體實(shí)現(xiàn)過程。改變類的功能時(shí)不會(huì)影響類的使用者,并且提高了程序的安全性與可維護(hù)性。 通過添加訪問器和修改器修改 Rectangle類 class Rectangle { private int a,b。 public int getArea(){ return a*b。 } public int setAB(int a,int b){ if(a=0||b=0) (“Erro input!”)。 =a。 =b; } } ? Java的參數(shù)傳遞都是值傳遞 ? Java參數(shù)傳遞分為基本類型參數(shù)傳遞與對(duì)象類型(即引用類型)參數(shù)傳遞。 ? 基本類型參數(shù)值傳遞意味著當(dāng)將一個(gè)實(shí)參值傳遞給一個(gè)方法時(shí),如果方法修改了該參數(shù),改變的是形參,而原始的實(shí)參的值保持不變。 ? 引用類型變量傳遞將一個(gè)參數(shù)傳遞給一個(gè)方法后,方法接收的是一個(gè)引用變量的值,這個(gè)值某個(gè)對(duì)象的內(nèi)存地址值。引用變量的參數(shù)傳遞仍然是值傳遞。 程序 class Student { int age。 String name。 public Student(int a,String n ) { age=a。 name=n。 } } public class TestPass { public static void changeAge(int fromAge, int toAge ){ fromAge=toAge。 (After invoke method changeAge fromAge is:+toAge)。 } public static void changeObjAge(Student st, int toAge ){ =toAge。 } public static void main(String[] args) { Student st1=new Student(19,Jacky)。 changeAge(,20)。 (After invoke method changeAge student age is: +)。 changeObjAge(st1,20)。 (After invoke method changeObjAge student age is: +)。 } } ? changeObjAge方法通過接受引用變量參數(shù)改變了對(duì)象的成員值,如果你從此就認(rèn)為傳遞了引用變量參數(shù)就可以改變對(duì)象就大錯(cuò)特錯(cuò)了。以修改后的程序 ? 方法調(diào)用完畢 st完成使命從內(nèi)存中釋放,而原來的 st1仍然指向“ Jacky”, “ Julie”沒有引用變量再引用它成為垃圾,等待垃圾回收器清除。整個(gè)過程 “ Jacky”沒有發(fā)生改變。 ? 由此可知, Java的參數(shù)傳遞都是值傳遞,只要理解了這一點(diǎn)并掌握了內(nèi)存的變化過程,這樣的錯(cuò)誤很容易避免。 總結(jié) ? 面向?qū)ο笤O(shè)計(jì)是一種更接近人類自然思維的程序設(shè)計(jì)方法,最重要的就是通過類的定義與使用,類的封裝等特性提高程序的復(fù)用性。 ? 類是封裝了相同屬性與行為的一類對(duì)象的模版,對(duì)象就是類的實(shí)例,使用 new關(guān)鍵字加構(gòu)造方法的方式創(chuàng)建對(duì)象,然后通過引用變量名加點(diǎn)( .)運(yùn)算符來訪問對(duì)象成員。 ? 實(shí)例成員變量是屬于類的一個(gè)對(duì)象實(shí)例的變量,要使用它必須通過創(chuàng)建類的對(duì)象實(shí)例然后用引用變量訪問它。 ? 類屬成員變量和方法,即靜態(tài)成員,用 static關(guān)鍵字聲明,靜態(tài)變量和靜態(tài)方法不依賴于具體實(shí)例,可以通過類名直接訪問。 ? 修飾符指定類、方法和數(shù)據(jù)的訪問方式。 public表示任何用戶都具有訪問權(quán)限。Private表示方法和數(shù)據(jù)成員只能在類內(nèi)部訪問。 ? 方法的所有參數(shù)傳遞都是值傳遞。對(duì)于基本類型的參數(shù)傳遞實(shí)際值,對(duì)于引用類型的參數(shù)傳遞對(duì)象的引用。 ? 具體隱藏實(shí)現(xiàn)是通過設(shè)定修改器與訪問器方法把類中的數(shù)據(jù)封裝起來,通過這些方法訪問類的數(shù)據(jù)提高了安全性。 ? This是指向類的當(dāng)前實(shí)例的引用,關(guān)鍵字 this也能在構(gòu)造方法中使用, this()調(diào)用同一個(gè)類的另一個(gè)構(gòu)造方法。 ? 創(chuàng)建的對(duì)象存儲(chǔ)在對(duì)內(nèi)存中,這是一種靈活的存儲(chǔ)機(jī)制,你不必自己定義對(duì)象的生命周期,在合適的時(shí)候垃圾回收器會(huì)對(duì)垃圾對(duì)象進(jìn)行清理以釋放內(nèi)存空間。 第 四章 繼承和多態(tài) 繼承和多態(tài) ? ? ? 繼承還是組合? ? Object類 ? toString方法 ? 對(duì)象的比較 ? 類與類之間還有一種父與子的關(guān)系,子類繼承父類方法與屬性,這個(gè)我們就稱之為繼承 ? 子類擁有父類的一些公有的屬性和方法,并且子類可能也會(huì)有自己的方法和屬性 ? 除了添加父類中沒有的新方法外子類還可以通過重寫父類的方法來重定義自己的行為方式 繼承基礎(chǔ) ? 重寫與重載不同,重載需要不同的參數(shù)來區(qū)別相同方法名的方法,重寫是發(fā)生在子類與父類上,重寫父類方法必須與父類的方法名同名同參并且同返回值 。 ? 當(dāng)訪問修飾符為 private時(shí),表明該方法不能被重寫,同樣當(dāng)方法具有 final關(guān)鍵字時(shí)該方法不能被重寫 。 ? 子類雖然重寫了父類的某個(gè)方法,但仍然需要用到父類的這個(gè)方法,這時(shí)使用 super關(guān)鍵字仍然可以調(diào)用父類的方法 。 程序 程序 public class TestOstrich { public static void main(String[] args) { Bird ostrich1 =new Ostrich()。 //向上轉(zhuǎn)型 ()。 } } class Bird { public static void fly(){ (Bird Flying!)。 } } class Ostrich extends Bird{ public static void fly(){ (I can39。t fly!)。 } } 輸出結(jié)果: Bird Flying! Static方法不能重寫 ? Bird類派生了鴕鳥 Ostrich類 ,以上程序聲明了一個(gè)Bird類型的鴕鳥對(duì)象,象基本類型數(shù)據(jù)的自動(dòng)提升一樣,鴕鳥自動(dòng)提升為 Bird類,這叫做向上轉(zhuǎn)型。 ? static方法是不會(huì)被重寫 ? 如 :子類中定義了與父類同名的 fly方法,父類的 fly方法不會(huì)被重寫,而是被遮蔽因此得出結(jié)果鴕鳥會(huì)飛! ? 子類在產(chǎn)生對(duì)象實(shí)例時(shí)首先會(huì)調(diào)用父類的構(gòu)造方法,如果沒有顯示的指定調(diào)用父類自定義的構(gòu)造方法,那么編譯器會(huì)調(diào)用默認(rèn)的父類構(gòu)造方法: super()。但是父類如果自定義了帶參數(shù)的構(gòu)造方法,就必須在子類的構(gòu)造方法中指定調(diào)用它,否則會(huì)因找不到 super()而報(bào)錯(cuò)。注意,如果需要顯示的調(diào)用父類構(gòu)造方法,必須將其寫在構(gòu)造方法里的第一行 。 ? 接著按聲明的順序調(diào)用成員初始化。 ? 最后調(diào)用本構(gòu)造方法的方法體 例: 程序 繼承還是組合? ? 判斷繼承關(guān)系的一條定律是看它是否符合 isa的定義 ? 繼承打破了類的封裝子類繼承了父類的成員就意味著父類成員有所改變時(shí)子類必須隨之變化,這削弱了子類的獨(dú)立性,增加了軟件維護(hù)的難度。 ? 繼承的層次不宜過多,設(shè)計(jì)時(shí)良好的繼承體系書應(yīng)該保持在三
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1