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

正文內(nèi)容

java學(xué)習(xí)筆記-資料下載頁

2025-08-04 18:28本頁面
  

【正文】 外的子類型?;蛘咦宇愋筒粧伋隼?。如果父類型無throws時,子類型也不允許出現(xiàn)throws。此時只能使用try catch。斷言是一種調(diào)試工具(assert)斷言(assert)其后跟的是布爾類型的表達(dá)式,如果表達(dá)式結(jié)果為真不影響程序運(yùn)行。如果為假系統(tǒng)出現(xiàn)低級錯誤,在屏幕上出現(xiàn)assert信息。Assert只是用于調(diào)試。在產(chǎn)品編譯完成后上線assert代碼就被刪除了。集合類集合(集合類的對象)是用來管理其他若干對象的,它類似于C++標(biāo)準(zhǔn)模板庫中的容器,不過在JAVA的集合類的對象中可以用來存放多種類型的對象。接口和類共同構(gòu)成了一個集合框架,集合的概念,一個對象可以裝載多個對象,這個對象就是集合對象。集合框架1,接口Collection 用來管理多個對象,集合中的每個元素都是對象。Map,Map中沒有對象,而是鍵值對,由Key,value組成的鍵值對,Key是不可重復(fù)的。value是可以相同的,一個Key和一個value一一對應(yīng)。集合中用到的類,在使用時注意將其引入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 接口(以下介紹其子接口)SortedMap,這個接口的實現(xiàn)類同樣可以實現(xiàn),不過是對鍵值對中的Key進(jìn)行排序,這個接口的實現(xiàn)類也是要指定排序規(guī)則的。List接口的實現(xiàn)類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 這是一個工具類,這個類中的sort(list接口的實現(xiàn)類的對象)方法,其參數(shù)是一個集合類的對象,這個方法使用來對集合類的對象進(jìn)行排序的。以后,我將以集合這個名字來稱呼集合類的對象。,對于字符串對象內(nèi)容的集合來說會按字典順序排序(升序),對于數(shù)字內(nèi)容的集合排序也會按照升序排序。排序可一份為兩部分內(nèi)容,一個是排序的規(guī)則,也就是按照什么來進(jìn)行排序,并且排成什么樣的順序。第二個就是排序的算法,他決定了排序的效率。在對自定義的集合內(nèi)容類型排序時,需要先定義那個類型的排序規(guī)則。Comparable接口,這個接口中只定義了一個pareTo(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接口,也叫做可比較接口。只要實現(xiàn)了這個接口,就是可排序的。接下來介紹另外一種對自定義類型對象的集合整體排序的方法,也就是實現(xiàn)比較器接口(Comparator),這個接口中定義了一個pare(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)堆棧)。Set接口的實現(xiàn)類HashSetSet的實現(xiàn)類的集合對象中不能夠有重復(fù)元素,HashSet也一樣他是使用了一種標(biāo)識來確定元素的不重復(fù),HashSet用一種算法來保證HashSet中的元素是不重復(fù)的,HashSet的底層實現(xiàn)還是數(shù)組。Object類中的hashCode()的方法是所有子類都會繼承這個方法,這個方法會用Hash算法算出一個Hash(哈希)碼值返回,HashSet會用Hash碼值去和數(shù)組長度取模,模(這個模就是對象要存放在數(shù)組中的位置)相同時才會判斷數(shù)組中的元素和要加入的對象的內(nèi)容是否相同,如果不同才會添加進(jìn)去。Hash算法是一種散列算法。注意:所以要存入HashSet的集合對象中的自定義類必須覆蓋hashCode(),equals()兩個方法,才能保證集合中元素容不重復(fù)。在覆蓋和hashCode()方法時,要使相同對象的hashCode()方法返回相同值,覆蓋equals()方法再判斷其內(nèi)容。為了保證效率,所以在覆蓋hashCode()方法時,也要盡量使不同對象盡量返回不同的Hash碼值。如果數(shù)組中的元素和要加入的對象的hashCode()返回了相同的Hash值(相同對象),才會用equals()方法來判斷兩個對象的內(nèi)容是否相同。SortedSet接口是Set的子接口。TreeSet是SortedSet接口的實現(xiàn)類,他可以對集合中的元素進(jìn)行排序。要存放在TreeSet中自定義類的對象,這個類要么是已經(jīng)實現(xiàn)了Comparable接口,要么是能給出Comparator比較器,TreeSet可以自動過濾掉重復(fù)元素所以不用重載hashCode()方法,TreeSet會根據(jù)比較規(guī)則判斷元素內(nèi)容是否相同,TreeSet會在元素存入世就進(jìn)行了排序。(在TreeSet給出排序規(guī)則時,一定要注意對象內(nèi)容相等的條件,一定要注意在主觀的認(rèn)為兩個對象內(nèi)容相同時,才可以使用比較少的條件來進(jìn)行判斷)在要排序時才使用TreeSet類(存儲效率比較低),HashSet的存儲效率比較高,在需要為HashSet的對象排序時,就可以把HashSet中的元素放入TreeSet。Map接口的實現(xiàn)類Map中只可以存放鍵值對(Key,value),其中Key是不可以重復(fù)的。Key和value是一一對應(yīng)的。HashMap是Map接口的實現(xiàn)類,Key時無序存放的,其中Key是不可以重復(fù)的,它也是通過Hash碼值來保證Key不重復(fù)的,Key和value是一一對應(yīng)的。如果要加入的鍵值對和HashMap中鍵值對的Key是相同的就會將這個集合中的Key所隊?wèi)?yīng)的value值進(jìn)行覆蓋,在使用自定義類型作為Key時,那就是要覆蓋hashCode(),equals()方法,也就是和HashSet中要放入自定義類型是的處理方法相同。這個類的對象是線程不安全的。在遍歷Map時,要使用其keySet()方法獲得Key的一個Set集合,可以通過遍歷這個Set,用get()方法來獲得Key所對應(yīng)的value,也就遍歷了Map。Hashtabl也是Map接口的實現(xiàn)類,他和HashMap比較相似,只不過這個類對象是重量級的,也是線程安全的。他不允許Key和value為null。Properties,這個類是Hashtable的子類,他的Key和value只能是字符串。SortedMap是Map的子接口TreeMap是SortedMap的實現(xiàn)類,他會按照Key進(jìn)行排序。和TreeSet類一樣,在使用自定義類作Key時,要用自定義類實現(xiàn)Comparable接口。注意:其實HashSet底層就是一個HashMap,只不過其中的value值都是null值,而HashMap的底層是用數(shù)組實現(xiàn)的。java中的圖形界面GUI,圖形化的用戶接口,為了人機(jī)交互使用的。構(gòu)造圖形界面的步驟1,選擇一個容器2,設(shè)置容器的布局管理器3,向容器添加組件4,添加事件的監(jiān)聽容器(Container)用于管理其他的組件的對象,組件必須放到容器里。JFrame,這是一個最頂層的窗體容器,所有其他的組件必須放在頂層容器里。JDialog 對話框容器,他要依附于其父組件,他不是一個頂層容器。Jpanel,他不是頂層容器,必須放在頂層容器中,任何一個容器都有add()方法,Panel面板是透明的(默認(rèn)),他也是一個組件。布局管理:對于任何一個容器類中都有setLayout()方法,用容器對象調(diào)用這個方法,來設(shè)置容器的布局管理器(LayoutManager這是一個接口,所有布局管理器都實現(xiàn)了這個接口)??捎玫牟季止芾砥鳎篎lowLayout,流式布局管。Panel的默認(rèn)布局管理就是FlowLayout。BorderLayout,按方位進(jìn)行布局管理,(North,South,East,West,Middle)不明確指定,就會默認(rèn)加載在中間(Middle),add(Component p,String place)這個方法是在指定的位置添加組件。GridLayout,網(wǎng)格布局,通過行列,間距,來用網(wǎng)格分割,把組件放入如網(wǎng)格中,先行后列擺放組件。CardLayout,卡片布局,面板重疊放置。GridBogLayout,組件可以跨行跨列的網(wǎng)格布局。注意:一定要在圖形界面都其他功能都設(shè)置好之后才能設(shè)置可見性。JButton :按鈕JTextField:單行文本域JTextArea:多行文本區(qū)JScrollPane:滾動窗體JComboBox:下拉選擇框JRadioButton:單選按鈕JCheckBox:多選按鈕JList:多行列表JLabel:標(biāo)簽JPasswordField:密碼輸入框JEditorPane:顯示結(jié)構(gòu)化文檔Border:邊框JMenuBar:菜單條JMenu:菜單JMenuItem:菜單項JPopupMenu:彈出式菜單JSlider:滑動條JProgressBar:進(jìn)度條JTabbedPane:分層面板JSplitPane:分隔面板JToolBar:工具條JFileChooser:文件選擇器JColorChooser:顏色選擇器顯示對話框 JoptionPane 里面有很多靜態(tài)方法可以彈出對話框awt事件模型(觀察者模式)(重點)事件模型中,包括事件源對象,事件處理者(事件監(jiān)聽者對象),事件對象。事件源和事件處理者之間建立了授權(quán)關(guān)系,也就是在事件源類中有一個事件處理者的對象作為屬性,也可能是一個事件處理者的集合。 事件對象事件源――――――――〉事件處理者這就是事件模型的機(jī)制,也就是由事件源對象發(fā)送一個消息(事件對象),然后事件處理者調(diào)用相應(yīng)的方法處理事件。在事件監(jiān)聽器接口中定義的方法,都要以事件對象為參數(shù)。一個事件源可以注冊多個同類型的監(jiān)聽器,也可以注冊多種多個事件監(jiān)聽器,一個事件監(jiān)聽器也可以為多個事件源服務(wù)。首先了解一下什么是發(fā)消息:A,B,C三個類,分別作為事件源,事件處理者,事件對象。在A類中有一個B類的屬性或者是一個內(nèi)容為B類對象的集合,也就是事件源和事件處理者之間的建立了授權(quán)關(guān)系,在B類需要實現(xiàn)一個自定義的接口,這個自定義的接口繼承了EventListener,EventListener接口中沒有定義任何方法,這只是一個標(biāo)記接口。實現(xiàn)在自定義接口中定義好的用于事件處理的方法,C類要繼承EventObject類。這些方法是以事件對象為參數(shù)的b(C c),而后在A類a(C c)方法中使用B類的對象調(diào)用B類中的b(C c)方法,并把事件對象作為參數(shù),并在main方法中用A類的對象調(diào)用了a(c)方法,這也就叫做A類對象給B類發(fā)送了消息。也就是說事件源對象間接調(diào)用了事件監(jiān)聽器的方法,并以事件對象為實參傳到事件監(jiān)聽器的方法中,要就叫事件源給事件監(jiān)聽器的方法發(fā)了一個消息(事件對象)。例子如下:import .*;//事件源類class A{ private Str
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1