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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

5、c 由jvm提供一個(gè)系統(tǒng)級(jí)的線程來自動(dòng)完成,程序員無法精確控制和干預(yù)第三章 內(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ù)、返回值類型一致,在子、父類之間方法的重載:同名不同參,在同一個(gè)類中super關(guān)鍵字:只能出現(xiàn)在子類中,代表父類final:修飾變量就叫常量修飾方法:表示該方法能被繼承,但是不能被重

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

8、ic interface people接口不能被實(shí)例化,要使用,需要實(shí)例化實(shí)現(xiàn)類?接口中的方法都是抽象的,但是不用abstract關(guān)鍵字修飾接口中的方法都不允許實(shí)現(xiàn)接口中的變量都是static and final如果一個(gè)類實(shí)現(xiàn)接口的話,必須實(shí)現(xiàn)接口中的所有的方法;反過來說:如果沒有實(shí)現(xiàn)接口中的所有方法,那么該類必須被聲明為抽象類一個(gè)類是可以實(shí)現(xiàn)多個(gè)接口的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);第六章 異常處理 異常就是在程序運(yùn)行過程中所發(fā)生的不正常的事件,它會(huì)中斷正在運(yùn)行的程

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25、println(當(dāng)前線程名是: +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 在運(yùn)行!);t.sleep(500);s

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論