java oop總結(jié)復習_第1頁
java oop總結(jié)復習_第2頁
java oop總結(jié)復習_第3頁
java oop總結(jié)復習_第4頁
java oop總結(jié)復習_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、面向?qū)ο蟮谝徽?java面向?qū)ο缶幊谈攀龅?一,二,三,四,五 章.類:具有相同屬性和方法的對象的集合.對象:由類產(chǎn)生的,是類的一個具體的實例;萬物皆對象.類和對象的關(guān)系:類是抽象的,是產(chǎn)生對象的模板對象是類的具體的實例如何來定義一個類,怎樣來產(chǎn)生一個對象定義一個類:class student屬性;方法()產(chǎn)生一個對象:student stu=new student();面向?qū)ο蟮?個特征封裝、繼承、多態(tài)(方法的重寫、方法的重載)第二章 java類定義屬性類變量:也叫靜態(tài)變量.用static修飾的成員變量,所有的對象共享實例變量:不用static修飾的成員變量,每個對象特有的訪問的形式:cla

2、ss studentstring name;static int age=6;類變量:類名.類變量(student.age)實例變量:對象名.實例變量(student stu=new student();)方法構(gòu)造方法:與類同名,沒有返回值類型,也不聲明為void構(gòu)造方法可以重載沒有參數(shù)的構(gòu)造方法為默認的構(gòu)造方法如果一個類中有0多個構(gòu)造方法,實例化對象的時候,根據(jù)參數(shù)自動匹配相應構(gòu)造方法類方法:也叫靜態(tài)方法.用static修飾的方法;調(diào)用:類名.方法名()實例方法:不用static修飾的方法;調(diào)用:對象.方法名()類方法和實例方法區(qū)別:1類方法只能訪問類變量或者類方法2實例方法

3、既可以訪問類變量、類方法也可以訪問實例變量和實例方法3如果在類方法中要訪問實例變量或者實例方法的話,要先創(chuàng)建對象class studentstring name;static int age;public student()system.out.println(默認的構(gòu)造方法);public student(string name)=name;/類方法public static void speek()/run(); 不能直接調(diào)用實例方法student stu=new student();stu.run();system.out.println(我說中文);/類方法publi

4、c static void talk()speek();/直接調(diào)用system.out.println(我在聊天);/實例方法public void eat()talk(); /可以直接調(diào)用靜態(tài)的方法sleep(); /可以直接調(diào)用實例方法system.out.println(我在吃飯);/實例方法public void sleep()system.out.println(我睡了);public void run()system.out.println(我在跑步);.this:代表當前的對象,只能出現(xiàn)在構(gòu)造方法和實例方法中.常量:用final關(guān)鍵字修飾的變量叫常量static.垃圾收集:簡稱g

5、c 由jvm提供一個系統(tǒng)級的線程來自動完成,程序員無法精確控制和干預第三章 內(nèi)部類和繼承.內(nèi)部類:靜態(tài)內(nèi)部類:內(nèi)部類用static修飾的匿名內(nèi)部類:方法中的內(nèi)部類:普通內(nèi)部類:.繼承:符合is-a法則,關(guān)鍵字extendsclass peoplestring name=張三;public void speek()system.out.println(我在說話);class student extends peoplestring name=李四;/方法的重寫public void speek()/通過super關(guān)鍵字訪問父類中被隱藏的屬性或者方法system.out.println(super

6、.name);system.out.println(我在說中國話);public void eat()system.out.println(我要吃東西);/方法的重載public void eat(string food)system.out.println(我在吃+food);第四章 繼承的使用子類繼承父類的所有的屬性和方法子類除了具有父類的屬性和方法以外,還可以具有自己特有的屬性和方法方法的重寫:方法名稱、參數(shù)、返回值類型一致,在子、父類之間方法的重載:同名不同參,在同一個類中super關(guān)鍵字:只能出現(xiàn)在子類中,代表父類final:修飾變量就叫常量修飾方法:表示該方法能被繼承,但是不能被重

7、寫修飾類:表示該類為最終類,不能被繼承.訪問修飾符:private:私有的,只能在本類中被訪問public :公共的,所有的地方都可以訪問都protected:受保護的,本類、本包或者子類中都可以訪問默認的:在同一個包下都可以訪問.抽象類:1用abstract修飾的類叫抽象類2抽象類不能被實例化3抽象類可以沒有抽象的方法4如果一個類繼承抽象類的話,必須實現(xiàn)抽象的方法;如果不實現(xiàn)抽象的方法,那么該類必須被聲明為抽象類public abstract class peoplepublic abstract void speek();第五章 異常處理.接口定義:使用interface關(guān)鍵字定義publ

8、ic interface people接口不能被實例化,要使用,需要實例化實現(xiàn)類?接口中的方法都是抽象的,但是不用abstract關(guān)鍵字修飾接口中的方法都不允許實現(xiàn)接口中的變量都是static and final如果一個類實現(xiàn)接口的話,必須實現(xiàn)接口中的所有的方法;反過來說:如果沒有實現(xiàn)接口中的所有方法,那么該類必須被聲明為抽象類一個類是可以實現(xiàn)多個接口的u.抽象類和接口中的多態(tài)public interface peoplepublic void eat();class student implements peoplepublic void eat()system.out.println(我吃

9、魚);class teacher implements peoplepublic void eat()system.out.println(我吃青菜);class testpublic void testeat(people p)p.eat();public static void main(string args)test t=new test();student stu=new student();t.testeat(stu);teatcher te=new teacher();t.testeat(te);第六章 異常處理 異常就是在程序運行過程中所發(fā)生的不正常的事件,它會中斷正在運行的程

10、序。java中如何進行異常處理:異常處理時通過5個關(guān)鍵字來實現(xiàn)的:try ,catch, finally, throw, throws.捕獲異常(try):執(zhí)行可能產(chǎn)生異常的代碼拋出異常(throw):手動拋出異常聲明異常(throws):聲明方法可能要拋出的各種異常catch:捕獲異常finally:無論是否發(fā)生異常,代碼總能執(zhí)行任何可引發(fā)異常的方法都必須在try塊中調(diào)用。在安排catch語句的順序時,首先應該捕獲最特殊的異常,然后再逐漸一般化,即先子類后父類。在try/catch塊后加入finally塊,可以確保無論是否發(fā)生異常,finally塊中的代碼總能被執(zhí)行。無法解決一個異常,就要將

11、其拋出,把異常交給調(diào)用者處理。自定義異常需要繼承exception及其子類。使用自定義異常的時候java api提供的內(nèi)置異常不一定總能捕獲程序中發(fā)生的所有錯誤,有時會需要創(chuàng)建用戶自定義異常。異常是運行時發(fā)生的錯誤??梢允褂胻ry,catch,throw,throws和fianly來管理java異常處理。要監(jiān)控的程序語句包含在try塊內(nèi)catch塊中的代碼用于捕獲和處理異常,在方法返回之前絕對必需執(zhí)行的代碼應放在finally塊中。第七章 數(shù)組在java語言中,數(shù)組是一個具有相同數(shù)據(jù)類型的數(shù)據(jù)值的索引集合。在java語言中,數(shù)組和對象一樣是一個引用數(shù)據(jù)類型。數(shù)組中第一個元素的索引是0。數(shù)組元素

12、不僅可以使基本數(shù)據(jù)類型還可以是對象。對象數(shù)組的聲明,創(chuàng)建和基本數(shù)據(jù)類型數(shù)組一樣。由于數(shù)組和對象都是引用數(shù)據(jù)類型,因此傳遞一個對象到方法和從一個方法中返回對象的規(guī)則都是適用于數(shù)組。返回數(shù)組中最小元素索引的方法。當傳遞一個數(shù)組給方法的時候,僅僅是數(shù)組的引用被傳遞,在方法內(nèi)部沒有創(chuàng)建數(shù)組的副本。在方法調(diào)用的時候,參數(shù)應當使用不帶方括號的數(shù)組名。聲明二維數(shù)組的語法和聲明一維數(shù)組的語法很相似,只是多了個方括號。double payscaletable;或者double payscaletable ;和一維數(shù)組一樣也需要創(chuàng)建數(shù)組,payscaletable = new double4 5;也可以使用簡單方

13、式:payscaletable = new double4 ;二維數(shù)組的行,例的索引都是從0開始。 第八,九章java常用類(一,二)所有的基本數(shù)據(jù)類型,在java中都有一個對應的包裝類?;緮?shù)據(jù)類型,字符串和包裝類可以很好的相互轉(zhuǎn)換。string類有個字符串表來保存內(nèi)存中的所有字符串。string類是不能改變的。stringbuffer類提供了繞過字符串表處理字符串的功能。stringtokenizer類專門用于處理帶分割符的字符串。system類可以取得當前系統(tǒng)時間,獲取系統(tǒng)屬性以及執(zhí)行數(shù)組拷貝等。calendar,gregorian,date和dateformat類組成了java日期處理

14、核心類。第十章 集合類集合時一些對象。集合也是一種對象,但他是一種特殊的對象。集合里面有什么?“集合框架”有一組用來操作對象的接口組成不同接口描述不同類型的組。 第十一章 泛型化的集合框架集合是對象的容器,用于存儲,檢索,操作和傳輸對對象collection提供了關(guān)于集合的的一些通用的的操作,寶貨插入,刪除。判斷一個元素是不是其人員,遍歷。java集合框架定義了set和list接口他們從collection中直接派生出來、map用于維護維護鍵/值對(key/value)泛型允許指定集合里元素的類型。自動裝拆箱大大方便了基本類型數(shù)據(jù)及其包裝類地使用。foreach循環(huán)簡化了集合的遍歷。枚舉可以代

15、替public static final int。他們的功能是相當?shù)?。第十二,三?使用java的輸入/輸出類(一,二)字節(jié)流是指8位的通用字節(jié)流,以字節(jié)為基本單位,在java.io包中,對于字節(jié)流進行操作的類大部分繼承與inputstream類outputtream 。 字符流是指16位的unicode字符流以字符(兩個字節(jié))為基本單位,非常適合吃力字符串和文本,對于字符流進行操作的雷達部分繼承于reader(讀取流)類和writer(寫入流)類。過濾流的工作方式是:將輸出流傳遞給過濾流構(gòu)造函數(shù),之后即可食用過濾流替代輸出流。 reader類提供流了讀取字符,跳過字符,在流中設(shè)置返回標記以及

16、關(guān)閉reader的方法。writer類提供了三種類型的方法:將數(shù)據(jù)寫入流的方法,刷新已寫入流的數(shù)據(jù)的方法和關(guān)閉流的方法。如果想執(zhí)行對象的i/o,那么類的定義必須包含implements serializable 這個步驟。如果一個對象的屬性不想被寫入到文件,那么該屬性使用關(guān)鍵字transient來修飾。如:private transient string passwort 。 第十四章 java gui和swing有兩個方法可以從java類創(chuàng)建jframe對象。可以擴展jframe類,也可以在main()方法中聲明一個jframe類。所有的swing組件都繼承了javax。swingjcomp

17、onent類的功能。jpanel類是一個普通的矩形容器,但是缺少jframe的標題和邊框。jscrollpane最吸引人的地方是具有可選的垂直滾動條和水平滾動條。jtextfiled是一種包含單行文本數(shù)據(jù)項的組件。jradiobutton類用于組合框,包含一個下拉列表。jlist類用于顯示項目列表。flowlayout布局管理器使用從左到右,從上到下的方式來放置部件。gridlayout布局管理器使用行,列格欄來放置部件。 第十五章 事件委托模型所有事件都被放入到一種被稱為事件隊列的特殊隊列中。程序可以查看該隊列并檢查隊列中是否有已發(fā)生的事件。jvm查看進入隊列的每個事件,判斷該事件是否屬于某

18、個正在運行的java程序。事件監(jiān)聽器是一個實現(xiàn)java.awt.event.eventlistener接口的類。在java中隊事件的不同處理方法最終都遵循相同的模式,即對事件創(chuàng)建者注冊監(jiān)聽器。 第十六章 反射反射的作用有如下兩點:可以使用反射動態(tài)的創(chuàng)建對象;應用程序需要在運行時加載一個特定的類,以實現(xiàn)某個任務時可以用到反射。在運行的java程序中,用java.lang.class 類來描述類和接口,所以要使用反射技術(shù)必須首先得到class對象。有三種方式得到class對象。第一種方式:如果在編譯期不知道類名,但是在運行期可以獲得該類名的情況。class c = class.forname(“類

19、名”);第二種方式:如果在編譯期知道類名的情況。class c = 類名.class; 或者class c = integer.type;第三種方式:如果一個類的實例已經(jīng)得到的情況。class c 對象名.getclass();定義構(gòu)造方法的參數(shù)類型:class partypes = new class 2;partypes0 = ingeter.type;partypes1 = ingeter.type;反射式j(luò)ava語言非常強大的功能,但是由于反射回破壞對象封裝,并且反射調(diào)用的速度較慢,犧牲了部分程序運行的性能。因此,適合在必要的工具類中使用。第十七章 高級swingjoptionpane

20、的形狀和類型多種多樣:輸入對話框:包含一個文本字段和兩個按鈕(ok(確定)和cancel(取消)。確認對話框:包含ok/cancel(確定/取消)或yes/no(是/否)按鈕。消息對話框:只包含ok(確定)按鈕。選項對話框:包含一系列選擇和任意數(shù)量的按鈕。insertnodeinto()方法有三個參數(shù):指向節(jié)點的引用,指向父節(jié)點的引用以及它在根中的索引。第十八章 java多線程編程 在java語言中,線程可以理解為一個可執(zhí)行的線索,多線程就是多個可執(zhí)行的線索。 通過以下兩種方法創(chuàng)建 thread 對象:- 聲明一個 thread 類的子類,并覆蓋 run() 方法。 class mythrea

21、d extends thread public void run( ) /* 覆蓋該方法*/ - 聲明一個實現(xiàn) runnable 接口的類,并實現(xiàn) run() 方法。 class mythread implements runnable public void run( ) /* 實現(xiàn)該方法*/ thread t = thread.currenthread();系統(tǒng)當前的線程創(chuàng)建多線程程序最簡單的方法是擴展java.lang.thread類。thread類允許覆蓋run()方法。testtwothreads1 tt= new testtwothreads1();創(chuàng)建線程tt1.start();

22、啟動線程 新建 (born) : 新建的線程處于新建狀態(tài) 就緒 (ready) : 在創(chuàng)建線程后,它將處于就緒狀態(tài),等待 start() 方法被調(diào)用 運行 (running) : 線程在開始執(zhí)行時進入運行狀態(tài) 睡眠 (sleeping) : 線程的執(zhí)行可通過使用 sleep() 方法來暫時中止。在睡眠后,線程將進入就緒狀態(tài) 等待 (waiting) : 如果調(diào)用了 wait() 方法,線程將處于等待狀態(tài)。用于在兩個或多個線程并發(fā)運行時。 掛起 (suspended) : 在臨時停止或中斷線程的執(zhí)行時,線程就處于掛起狀態(tài)。 恢復 (resume) : 在掛起的線程被恢復執(zhí)行時,可以說它已被恢復

23、阻塞 (blocked) 在線程等待一個事件時(例如輸入/輸出操作),就稱其處于阻塞狀態(tài)。 死亡 (dead) 在 run() 方法已完成執(zhí)行或其 stop() 方法被調(diào)用之后,線程就處于死亡狀態(tài)。在run()方法中,運行一個循環(huán),然后休眠10秒鐘:for ( int i = 0 ; i 5 ; i+) system.out.println(“running the first loop “+i);thread.sleep(1000); java 中的線程優(yōu)先級是在 thread 類中定義的常量- norm_priority : 值為 5- max_priority : 值為 10- min_

24、priority : 值為 1 缺省優(yōu)先級為 norm_priority 有關(guān)優(yōu)先級的方法有兩個:- final void setpriority(int newp) : 修改線程的當前優(yōu)先級- final int getpriority() : 返回線程的優(yōu)先級class mythread extends thread public static void main(string args) thread t= thread.currentthread(); system.out.println(當前線程是: +t); t.setname(myjavathread); system.out.

25、println(當前線程名是: +t); try for(int i=0;i3;i+) system.out.println(i); thread.sleep(1500); catch(interruptedexception e) system.out.println(主線程被中斷); class mythread1 extends thread public static void main(string args) thread t= thread.currentthread(); system.out.println(主線程是: +t); mythread1 ex = new myth

26、read1(); ex.start(); public void run() system.out.println(子線程是:+this); class threadstatedemo extends thread thread t;public threadstatedemo() t=new thread(this);system.out.println (線程 t 為新建!);system.out.println (線程 t 為就緒!);t.start();public void run() try system.out.println (線程 t 在運行!);t.sleep(500);s

27、ystem.out.println(線程 t 在短時間睡眠后重新運行!); catch (interruptedexception ie) system.out.println(線程被中斷); 當兩個線程循環(huán)依賴于一對同步對象時將發(fā)生死鎖。例如: 一個線程進入對象obja上的監(jiān)視器,而另一個線程進入對象objb上的監(jiān)視器。如果obja中的線程試圖調(diào)用objb上的任何 synchronized 方法,就將發(fā)生死鎖。 死鎖很少發(fā)生,但一旦發(fā)生就很難調(diào)試。 多線程允許程序員編寫可最大程度利用cpu 的高效程序。 java 以類和接口的形式為多線程提供內(nèi)置支持。 java 程序啟動時,一個線程立刻運行

28、,該線程稱為主線程。 可通過兩種方式創(chuàng)建線程:繼承thread類、實現(xiàn)runnable 接口。class chopstick boolean available; chopstick() available=true; public synchronized void takeup() while(!available) try wait(); system.out.println(大家等待另一根筷子); catch(interruptedexception e) available=false; public synchronized void putdown() available=tru

29、e; notify(); thread 類的有兩個構(gòu)造函數(shù)。 線程的缺省優(yōu)先級為 5。 作為后臺線程并為其他線程提供服務的線程稱為精靈線程。 同步是用于確保資源一次只能被一個線程使用的過程。 wait-notify機制用來處理線程間通信第十九章 java網(wǎng)絡(luò)編程(一)tcp/ip得名于該組協(xié)議中最常用的兩個協(xié)議:傳輸控制協(xié)議(tcp)和internet協(xié)議(ip).j包中包含下列重要的類:inetaddress類:封裝計算機的ip地址和dns。socket類:發(fā)送tcp消息。 serversocket類:創(chuàng)建服務器。 datagramsocket:用于發(fā)送或接收數(shù)據(jù)包。 datagrampac

30、ket:數(shù)據(jù)容器(封包)的作用。url類:代表統(tǒng)一資源定位符的對象。urlconnection:所有代表應用程序與url之間通信鏈接的類的超類。tcp/ip套接字是最可靠的雙向流協(xié)議。在包中,有兩個類來實現(xiàn)socket通信:socket和serversocket類。socket和serversocket類是包中最常用的類。 serversocket通過一個端口號來實例化對象。 serversocket = new serversocket(portnumber);第二十章 java網(wǎng)絡(luò)編程(二)java中有兩個可使用數(shù)據(jù)報實現(xiàn)通信的類,即datagrampacket和datagramsocket。 datagramsocket類有兩種構(gòu)造函數(shù)。第一種構(gòu)造函數(shù)無需任何參數(shù),常用于客戶端。datagramsocket s = new datagramsocket();另一種構(gòu)造函數(shù),常用于服務端。datagrampacket s =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論