亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? java(day09).txt

?? Java學(xué)習(xí)筆記
?? TXT
字號:
                                Java第九天      2007年5月9日

一、復(fù)習(xí)
 1、Object 所有的類直接或間接的父類
        finalize:垃圾收集的時候調(diào)用
        toString:返回對象的字符串形式
        equals:判斷兩個對象內(nèi)容是否相同
 2、包裝類
     8種基本類型各自提供了對象形式
 3、異常處理
     提高容錯性
     異常的分類:Throwable
                Error    :錯誤,不可避免,不可處理
                Exception:Runtime:未檢查:可處理可不處理,首先應(yīng)該努力避免異常(本可避免的)
                          非Runtime:已檢查:必須要處理
     異常對象的產(chǎn)生:throw 拋出異常,沿著方法調(diào)用鏈反向傳遞
     異常處理:throws 消極,聲明拋出
              try-catch 捕獲異常
              try-catch-finally
              try-finally
     方法覆蓋 :子類覆蓋方法不能比父類被覆蓋方法拋出更多的,范圍更寬的異常
 4、自定義異常

二、斷言
 在JDK1.4之后開始出現(xiàn),是一個調(diào)試工具
 其后跟的是布爾類型的表達(dá)式,如果表達(dá)式結(jié)果為真不影響程序運行。如果為假系統(tǒng)出現(xiàn)低級錯誤(Error),在屏幕上出現(xiàn)assert信息。
 assert a%2==0;
 編譯器的默認(rèn)設(shè)置:把斷言語句忽律  
 javac -source 1.4 源文件名   //表示用1.4新特性編譯
 java -enableassert(-ea) 類名  //打開斷言功能
 assert a%2==0:"a必須是偶數(shù)";  //出現(xiàn)錯誤時的提示信息
 assert只是用于調(diào)試。在產(chǎn)品編譯完成后上線assert代碼就被刪除了。

三、內(nèi)部類

內(nèi)部類也就是定義在類內(nèi)部的類。是編譯時語法。

內(nèi)部類的分類:
成員內(nèi)部類、	
局部內(nèi)部類、
靜態(tài)內(nèi)部類、
匿名內(nèi)部類(圖形監(jiān)聽時要用到,要掌握)。

1、成員內(nèi)部類

四個訪問權(quán)限修飾符都可以修飾成員內(nèi)部類。
內(nèi)部類和外部類在編譯時是不同的兩個類,內(nèi)部類對外部類沒有任何依賴。
內(nèi)部類是一種編譯時語法,在編譯時生成的各自的字節(jié)碼文件(Outer.class和Outer$Inner.class),內(nèi)部類和外部類沒有關(guān)系。
內(nèi)部類中可以訪問外部類的私有成員。(與C++的友員相比,不破壞封裝)
作為外部類的一個成員存在,與外部類的屬性、方法并列。
內(nèi)部類和外部類的實例變量可以共存。
在內(nèi)部類中訪問實例變量:this.屬性
在內(nèi)部類訪問外部類的實例變量:外部類名.this.屬性。
在外部類的外部訪問內(nèi)部類,使用out.inner.

成員內(nèi)部類的特點:

(1)內(nèi)部類作為外部類的成員,可以訪問外部類的私有成員或?qū)傩浴#词箤⑼獠款惵暶鳛閜rivate,但是對于處于其內(nèi)部的內(nèi)部類還是可見的。)
(2)用內(nèi)部類定義在外部類中不可訪問的屬性。這樣就在外部類中實現(xiàn)了比外部類的private還要小的訪問權(quán)限。
     注意:內(nèi)部類是一個編譯時的概念,一旦編譯成功,就會成為完全不同的兩類。
     對于一個名為outer的外部類和其內(nèi)部定義的名為inner的內(nèi)部類。編譯完成后出現(xiàn)outer.class和outer$inner.class兩類。
(3)成員內(nèi)部類不能含有靜態(tài)成員。***

建立內(nèi)部類對象時應(yīng)注意:
在外部類的內(nèi)部可以直接使用inner s=new inner();(因為外部類知道inner是哪個類,所以可以生成對象。)
而在外部類的外部,要生成(new)一個內(nèi)部類對象,需要首先建立一個外部類對象(外部類可用),然后在生成一個內(nèi)部類對象。內(nèi)部類的類名是外部類類名.內(nèi)部類類名。
Outer o=new Outer();
Outer.Inner in=o.new.Inner()。

2、靜態(tài)內(nèi)部類

(注意:前三種內(nèi)部類與變量類似,所以可以對照參考變量)
靜態(tài)內(nèi)部類定義在類中,任何方法外,用static class定義。
靜態(tài)內(nèi)部類只能訪問外部類的靜態(tài)成員。
生成(new)一個靜態(tài)內(nèi)部類對象不需要外部類對象:這是靜態(tài)內(nèi)部類和成員內(nèi)部類的區(qū)別。
靜態(tài)內(nèi)部類的對象可以直接生成:
Outer.Inner in=new Outer.Inner();
而不需要通過生成外部類對象來生成。這樣實際上使靜態(tài)內(nèi)部類成為了一個頂級類。
靜態(tài)內(nèi)部類不可用private來進(jìn)行定義。

3、局部內(nèi)部類

在方法中定義的內(nèi)部類稱為局部內(nèi)部類。
與局部變量類似,在局部內(nèi)部類前不加修飾符public和private,其范圍為定義它的代碼塊。

注意:
局部內(nèi)部類不僅可以訪問外部類私有實例變量,還可以訪問外部類的局部常量(也就是局部變量必須為final的)
在類外不可直接訪問局部內(nèi)部類(保證局部內(nèi)部類對外是不可見的)。
在方法中才能調(diào)用其局部內(nèi)部類。
通過內(nèi)部類和接口達(dá)到一個強制的弱耦合,用局部內(nèi)部類來實現(xiàn)接口,并在方法中返回接口類型,使局部內(nèi)部類不可見,屏蔽實現(xiàn)類的可見性。

4、匿名內(nèi)部類

匿名內(nèi)部類是一種特殊的局部內(nèi)部類,它是通過匿名類實現(xiàn)接口,并只創(chuàng)建一次。

匿名內(nèi)部類的特點:
(1)一個類用于繼承其他類或是實現(xiàn)接口,并不需要增加額外的方法,只是對繼承方法的事先或是覆蓋。
(2)只是為了獲得一個對象實例,不許要知道其實際類型。
(3)類名沒有意義,也就是不需要使用到。

注:一個匿名內(nèi)部類一定是在new的后面,用其隱含實現(xiàn)一個接口或?qū)崿F(xiàn)一個類,沒有類名,根據(jù)多態(tài),我們使用其父類名。
因其為局部內(nèi)部類,那么局部內(nèi)部類的所有限制都對其生效。
匿名內(nèi)部類是唯一一種無構(gòu)造方法類。
大部分匿名內(nèi)部類是用于接口回調(diào)用的。
匿名內(nèi)部類在編譯的時候由系統(tǒng)自動起名Out$1.class。
如果一個對象編譯時的類型是接口,那么其運行的類型為實現(xiàn)這個接口的類。
因匿名內(nèi)部類無構(gòu)造方法,所以其使用范圍非常的有限。
當(dāng)需要多個對象時使用局部內(nèi)部類,因此局部內(nèi)部類的應(yīng)用相對比較多。匿名內(nèi)部類中不能定義構(gòu)造方法。

匿名內(nèi)部類的寫法:
interface A{
	void ia();	
}
class B{
	public A bc(){
		return new A(){      //匿名類實現(xiàn)了A接口
			void ia(){……}
		};
        }
}
使用匿名內(nèi)部類:
B b=new B();
A a=b.bc();
a.ia();

注意:當(dāng)類與接口(或者是接口與接口)發(fā)生方法命名沖突的時候,此時必須使用內(nèi)部類來實現(xiàn)。
      用接口不能完全地實現(xiàn)多繼承,用接口配合內(nèi)部類才能實現(xiàn)真正的多繼承。

對于兩個類,擁有相同的方法:
class People
{
  run();
}
interface Machine{
   run();
}
此時有一個robot類:
class Robot extends People implement Machine.
名為run()的方法有2個,不可直接實現(xiàn)。

interface Machine{
	void run();
}
class Person{
	void run(){System.out.println("run");}
}
class Robot extends People{
	class Heart implements Machine{
		public void run(){
			System.out.println("發(fā)動機運行");
		}
	}
	public Machine getHeart(){
		return new Heart();
	}
	public void run(){
		System.out.println("機器人跑");
	}
}
public class Test{
	public static void main(String[] args){
              Robot r=new Robot();
		r.run();
		r.getHeart().run();
	}
}

練習(xí):把前面石頭剪刀布的游戲改寫為:采用匿名內(nèi)部類來實現(xiàn)接口,并獲得對象去調(diào)用match方法


四、集合

集合(集合類的對象)是用來管理其他若干對象的。
集合中保存的是對象的引用,數(shù)組是最基本的集合

集合框架

1,接口
集合中用到的類,接口在java.util包中,在使用時注意將其引入import。

Collection 用來管理多個對象,集合中的每個元素都是對象。
1)List 一個List的實現(xiàn)類的對象在管理多個對象時會按順序組織對象(即按照將對象放入的順序存儲)
  List實現(xiàn)類的對象是有順序的,List實現(xiàn)類對象中的內(nèi)容是可重復(fù)的。(注意,順序和排序的區(qū)別)
2)Set 一個Set的實現(xiàn)類表示一個數(shù)學(xué)概念上的集合,Set的實現(xiàn)類的對象中的元素是無順序的,也就是不會按照輸入順序來存放,Set的實現(xiàn)類對象中的元素是不重復(fù)的。
3)SortedSet,他是Set的子接口,他的實現(xiàn)類會對集合中的元素進(jìn)行排序。但是要指定排序規(guī)則,他會按排序規(guī)則進(jìn)行排序。

Map,Map中沒有對象,而是鍵值對,由Key,value組成的鍵值對
     Key是沒有順序,不可重復(fù)的。
     value是可以相同的,一個Key和一個value一一對應(yīng)。
Map 接口(以下介紹其子接口)
SortedMap,這個接口的實現(xiàn)類同樣可以實現(xiàn),不過是對鍵值對中的Key進(jìn)行排序,這個接口的實現(xiàn)類也是要指定排序規(guī)則的。

1> ArrayList是接近于功能的集合類,ArryList的實質(zhì)就是一個會自動增長的數(shù)組,ArrayList是用封裝的數(shù)組來實現(xiàn)的List接口的。
  Collection的實現(xiàn)類對象的遍歷方式是用迭代來實現(xiàn)的。
  在使用迭代器時先要獲得一個迭代器的對象,Iterator(迭代器接口)這是一個接口,迭代器是在集合類中實現(xiàn)的,也就是說,他是一個內(nèi)部類(匿名內(nèi)部類)實現(xiàn)的。
  Iterator接口中定義的常用方法方法hasNext(),next()。
  hasNext(),這個方法會使用一個游標(biāo),并通過判斷游標(biāo)指向的位置是否存放有對象。
  next()方法也是Iterator接口中定義好的方法,這個方法會使游標(biāo)指向下一個元素的位置,游標(biāo)會跳過第一個元素,并返回其中的內(nèi)容。

Collections 這是一個工具類,也是java.util包中的,這個類中的sort(list接口的實現(xiàn)類的對象)方法,其參數(shù)是一個集合類的對象,這個方法使用來對集合類的對象進(jìn)行排序的。以后,我將以集合這個名字來稱呼集合類的對象。,對于字符串對象內(nèi)容的集合來說會按字典順序排序(升序),對于數(shù)字內(nèi)容的集合排序也會按照升序排序。

排序可分為兩部分內(nèi)容,一個是排序的規(guī)則,也就是按照什么來進(jìn)行排序,并且排成什么樣的順序。
第二個就是排序的算法,他決定了排序的效率。

在對自定義的集合內(nèi)容排序時,需要先定義那個類型的排序規(guī)則。
Comparable接口,這個接口中只定義了一個compareTo(Object o),方法的返回類型是整型,如果當(dāng)前對象大于參數(shù)對象就返回正數(shù),當(dāng)前對象等于參數(shù)對象是就返回0,當(dāng)前對象小于參數(shù)對象時就返回負(fù)值,這樣寫就是升序排列,反之則是進(jìn)行降序排列,在實現(xiàn)這個接口中的方法時,返回值定義方式,只有這兩種。

根據(jù)指定類型的排序規(guī)則實現(xiàn)了Comparable接口,那么就可以對存有這個類型的集合進(jìn)行整體排序。Comparable接口,也叫做可比較接口。這個接口在java.lang包下。只要實現(xiàn)了這個接口,就是可排序的。

接下來介紹另外一種對自定義類型對象的集合整體排序的方法,也就是實現(xiàn)比較器接口(Comparator),這個接口中定義了一個compare(Object o1,Object o2)方法來比較兩個對象,這個方法的返回值定義和上面介紹的那個方法是一樣。

注意:在API,幫助文檔中以上兩個方法的參數(shù)類型是T,這代表的模板類型,也就是集合中存放的內(nèi)容的類型,在JDK1.4中其參數(shù)就是Object類型,模板類型的詳細(xì)內(nèi)容會在最后的JDK5.0新特性中講到。

Comparator接口可以在匿名內(nèi)部類中實現(xiàn),Collections 中的sort(集合了的對象,比較器)方法,可以對自定義類型內(nèi)容的集合進(jìn)行整體排序。

2> LinkedList,它是List接口的實現(xiàn)類,其底層是用雙向循環(huán)鏈表來實現(xiàn)的。

注意:ArrayList的查詢效率比較高,增刪動作的效率比較差,適用于查詢比較頻繁,增刪動作較少的元素管理的集合。
      LinkedList的查詢效率低,但是增刪效率很高。適用于增刪動作的比較頻繁,查詢次數(shù)較少的元素管理集合。

ArrayList,LinkedList都是線程不安全的。

實現(xiàn)堆棧 1,數(shù)組(ArrayList,增刪效率比較低,不適合)
	 2,LinkedList(實現(xiàn)堆棧的好方法)
	 3,java.util.Stack類,Stack是Vector的子類,Vector類是一個線程安全的(是一個重量級的類),并繼承了Vector的方法,Verctor類(這個類也是List接口的實現(xiàn)類)和ArrayList的功能近乎相同。(不推薦使用Stack類來實現(xiàn)堆棧)。

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线观看一区二区 | 毛片av一区二区| 亚洲国产精品成人综合色在线婷婷| 日本韩国欧美一区二区三区| 精一区二区三区| 亚洲综合激情网| 中文字幕巨乱亚洲| 日韩视频国产视频| 欧美天堂亚洲电影院在线播放| 国产一区二区三区黄视频 | 综合电影一区二区三区| ww久久中文字幕| 欧美疯狂性受xxxxx喷水图片| 成人激情免费视频| 国产在线播放一区三区四| 亚洲福利视频导航| 亚洲欧美在线aaa| 久久只精品国产| 日韩欧美一二三四区| 在线免费观看日韩欧美| 高清国产一区二区三区| 久久国产尿小便嘘嘘尿| 性做久久久久久免费观看| 亚洲视频免费在线观看| 欧美激情一区在线观看| 久久婷婷成人综合色| 欧美人xxxx| 欧美日韩免费一区二区三区视频| 一本色道a无线码一区v| 成人性视频网站| 国产高清在线观看免费不卡| 六月婷婷色综合| 免费在线观看一区二区三区| 午夜亚洲国产au精品一区二区| 樱花影视一区二区| 亚洲欧美偷拍卡通变态| 亚洲精品第1页| 亚洲日本va午夜在线电影| 日韩一区有码在线| 中文字幕不卡一区| 国产精品电影院| 1024亚洲合集| 亚洲精品综合在线| 一区二区三区在线播放| 亚洲精品亚洲人成人网| 一区二区三区四区在线播放| 亚洲欧美一区二区不卡| 一二三四社区欧美黄| 亚洲一区影音先锋| 婷婷丁香激情综合| 日韩不卡一二三区| 国产在线日韩欧美| 国产一区二区三区观看| 成人免费视频视频| 波多野结衣91| 在线观看区一区二| 日韩一区二区电影在线| 精品久久久三级丝袜| 欧美国产成人在线| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲一区在线观看网站| 日韩精品91亚洲二区在线观看| 蜜臀精品一区二区三区在线观看 | 欧美精品日日鲁夜夜添| 777色狠狠一区二区三区| 欧美一区二区免费视频| 久久网站最新地址| 亚洲四区在线观看| 亚洲高清免费观看| 国产一区二区女| 色综合天天综合色综合av| 国产精品久久久久久久第一福利| 亚洲欧美视频一区| 亚洲天堂久久久久久久| 久久欧美一区二区| 久久久久97国产精华液好用吗| 国产精品区一区二区三| 亚洲国产精品自拍| 久久99九九99精品| 92国产精品观看| 制服丝袜国产精品| 国产欧美一区二区在线观看| 亚洲激情在线播放| 日本怡春院一区二区| 成人午夜精品在线| 91亚洲精品一区二区乱码| 日韩一区二区三区电影在线观看 | 丝瓜av网站精品一区二区| 国内精品免费**视频| 97精品国产97久久久久久久久久久久| 欧美精品一二三区| 国产精品网站在线播放| 日本不卡在线视频| 不卡一区二区中文字幕| 欧美一区二区三区不卡| 国产精品久久久久久久久久免费看 | 欧美一级欧美三级在线观看| 国产精品国产三级国产aⅴ无密码| 日韩专区在线视频| 成人18视频在线播放| 91麻豆精品91久久久久久清纯| 国产精品国产三级国产普通话蜜臀 | 久久精品国产精品青草| 色8久久精品久久久久久蜜| 欧美精品一区二区三区蜜桃 | 亚洲精品视频免费观看| 国产精品一品二品| 欧美一区二区三区免费在线看| 亚洲摸摸操操av| 成人免费黄色在线| 日韩免费一区二区| 天堂一区二区在线| 一本色道久久综合精品竹菊| 久久久久久久久久久久久夜| 丝瓜av网站精品一区二区| 一本一道久久a久久精品综合蜜臀| 久久亚洲春色中文字幕久久久| 午夜精品福利一区二区蜜股av| bt欧美亚洲午夜电影天堂| 欧美精品一区二区在线播放 | 色呦呦日韩精品| 国产精品久久久久婷婷| 国产成人福利片| 精品91自产拍在线观看一区| 麻豆视频观看网址久久| 欧美嫩在线观看| 一区二区欧美国产| 色乱码一区二区三区88| 亚洲欧洲综合另类| 色综合久久99| 亚洲欧洲av在线| 99久久99久久免费精品蜜臀| 国产精品美女久久久久久久久久久 | 亚洲黄色小说网站| 91一区二区在线| 亚洲麻豆国产自偷在线| 91免费看视频| 最新国产の精品合集bt伙计| www.66久久| 中文字幕不卡在线观看| 99久久99精品久久久久久| 1000部国产精品成人观看| 色综合久久99| 亚洲高清免费视频| 欧美一区二区三区啪啪| 免费成人在线观看| 久久网站最新地址| 成人av网址在线| 日韩一区中文字幕| 欧美在线啊v一区| 婷婷一区二区三区| 日韩一区二区三区av| 国内偷窥港台综合视频在线播放| 久久综合999| 99re成人精品视频| 一区二区三区四区五区视频在线观看 | 欧美日韩国产综合视频在线观看 | 亚洲高清在线视频| 欧美一区二区三区四区久久| 美女视频网站久久| 久久尤物电影视频在线观看| a4yy欧美一区二区三区| 夜夜嗨av一区二区三区四季av| 欧美日韩精品一区二区三区| 九一九一国产精品| 国产精品视频免费看| 91麻豆精品一区二区三区| 亚洲成人第一页| 精品蜜桃在线看| 91老师片黄在线观看| 天天操天天干天天综合网| 538在线一区二区精品国产| 国产精品资源在线观看| 亚洲男同性视频| 欧美一二三区在线| av不卡免费在线观看| 午夜精品久久久| 国产精品欧美经典| 欧美亚洲国产一卡| 国产专区综合网| 一区二区三区成人| 久久影视一区二区| 欧美午夜寂寞影院| 国产传媒一区在线| 亚洲va天堂va国产va久| 久久久久国产成人精品亚洲午夜| 色视频一区二区| 久久国内精品自在自线400部| 亚洲日本中文字幕区| 日韩你懂的在线播放| 在线影视一区二区三区| 久久精品72免费观看| 一区二区三区不卡在线观看| 久久先锋影音av| 欧美挠脚心视频网站| 不卡在线观看av| 国产精品自在欧美一区| 午夜久久久久久| 亚洲少妇屁股交4| 久久久久久久久久久久久女国产乱|