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

正文內容

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