類的管理以及常用工具類ppt課件_第1頁
類的管理以及常用工具類ppt課件_第2頁
類的管理以及常用工具類ppt課件_第3頁
類的管理以及常用工具類ppt課件_第4頁
類的管理以及常用工具類ppt課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 江西師范大學計算機信息工程學院計算機科學系課程組 面向對象程序設計1.目錄第1章 程序設計言語概述第2章 程序設計言語的根本成分第3章 程序設計方法概述第4章 面向對象言語根底第5章 類的管理及常用工具類第6章 異常處置和斷言第7章 線程第8章 GUI編程根底和applet第9章 I/O流第10章 網絡通訊第11章 泛型與集合框架2.5.1 包5.2 包裝器類 和 自動裝箱/拆箱5.3 枚舉5.4 數(shù)組的高級運用5.5 字符串的高級運用補:隨機數(shù)類第5章 類的管理及常用工具類全面完好了解并掌握類及成員的存取權限;掌握包裝器類引入緣由和根本運用方式;了解和

2、掌握自動拆箱/自動裝箱機制;了解緊湊型for循環(huán)和正那么表達式。本章重點3.包包的聲明和導入訪問權限5.1 包4.包是類/接口的管理機制包是存放類/集合的目錄或緊縮包。包與類的關系,類似于目錄/緊縮包與文件;Java類庫大多以緊縮包方式存儲,如*.jar實踐上,lib目錄下的ct.sym也是緊縮包包名格式例如:UserData.NanChang.BankJava是面向網絡的言語,需求借助包來區(qū)分放置于不同主機上的類、類庫或對象。如Java RMI (Remote Method Invocation)機制.5.1 包5.聲明包聲明包,就是告知編譯器,要將該文件編譯后產生的一切.class文件,均

3、放入指定的包中。其中假設包不存在,那么會自動創(chuàng)建。格式:package 包名1.包名2.包名3.;如: package aa.bb.cc;語法限定:一個Java源文件中只能聲明一個包,且聲明語句只能作為源文件的第一條指令。5.1 包6.導入包背景:運用包中的類,可用全名或相對名,如全名:java.util.Scanner相對名:Scanner,需求導入包導入包,就是設定類的搜索途徑。格式:import 包名1.包名2.類名|接口名|*5.1 包import aa.EnumDemo; import java.util.*; import java.util.Scanner;7.本卷須知無法導入其

4、它包中的非public類;要正確設置classPath環(huán)境變量,讓編譯器能找到系統(tǒng)包。Java編譯器會自動導入包java.lang。如System、String、Math等均在此包。導入包不包含被導入包的子包;如 import java.*; 不能導入 java.util.Scanner類對大型工程,導入時盡量指明詳細類,而不要用.*的方式,后者會極大影響編譯速度。5.1 包8.無名包問題無名包:假設源文件中未用package聲明,那么編譯后產生的.class文件自動放置于無名包。例如:A.class位于無名包;B.class位于包X影響:無名包中的類無法被導入。換言之,無名包中的類無法被其它

5、包中的類運用。5.1 包A.javapublic class AB.javapackage X;public class B好的編程習慣:為每個類都指定一個包;導入時,導入類而不是導入包。9.類的訪問權限缺?。涸擃愔荒鼙煌话械念愒L問public:該類可被包外的類訪問當然,訪問前需求導入,或者運用 包名+類名格式5.1.3 訪問權限package p1public class Aclass BA.javapackage p2public class Cclass DC.javaA、B、C、D可以訪問哪些類?10.類中成員的訪問權限成員的訪問權限:四種留意:縱向看,只需兩種:能訪問、不能訪問5

6、.1.3 訪問權限修飾符同一類同一包不同包的子類所有類publicprotected缺省private對同一類而言,成員相互間可恣意訪問,無權限之分。對同處一包的類A、B,A不能訪問B的private成員,其他均可訪問。假設類A、B分處不同包,A只能訪問B的public成員,其他均不能訪問。11.試分析下面各類之間相互訪問的能夠5.1.3 訪問權限package X;public class A public int x1; protected int x2; int x3; private int x4;class Bpackage Y;import X.A;public class Ccl

7、ass D extends A 12.包裝器類的引入背景包裝器類的構造函數(shù)包裝器類的常用方法自動裝箱和自動拆箱5.2 包裝器類和自動裝箱/拆箱13.背景:提供與根本類型相關的常用功能操作根本類型運用頻繁,需用匯編/C等單獨實現(xiàn);why?根本綁定的操作方法太少,功能不強。包裝器類:為根本型配備的對應類。Byte、Short、Integer、Long、Float、Double、Character、Boolean包裝器類主要實現(xiàn)了兩種功能:實現(xiàn)根本類型與援用類型之間的自動轉換。實現(xiàn)根本類型與String類型之間的相互轉換。5.2 包裝器類和自動裝箱/拆箱這6種均屬Number類的子類14.包裝器類的

8、運用構造函數(shù):包裝器類名(根本類型值) 或包裝器類名(根本類型值的字符串)常用方法根本類型 xxxValue(); /轉成特定數(shù)值型static xxx parseXxx(String s); /String轉根本型xxxstatic W valueOf(String s); /String轉包裝器型W5.2 包裝器類和自動裝箱/拆箱Integer i1=new Integer(5);Integer i2=new Integer(5); Integer i3=new Integer(1.25); /運轉時報錯Double d=i1; /編譯錯Boolean b=new Boolean(ture

9、); /正確Boolean b=new Boolean(TRUE); /正確字符串轉Double: Double d=Double.valueOf(1.2);字符串轉double: double d=Double.parseDouble(1.2);double轉字符串:String s=Double.toString(3.14);double 轉 byte:byte b=(new Double(3.14).byteValue();15.自動裝箱和拆箱自動裝箱:根本型自動轉換為對應包裝器型自動裝箱:包裝器型自動轉換為對應根本型如:Double a=1.2; double b= a ; 自動裝箱、

10、拆箱能夠隱含錯誤例如:Integer i = null; int j = i; /運轉時錯 等同于:Integer i=null; int j= Value();留意: jDK1.5才引入對Boolean的自動拆箱如: Boolean b=new Boolean(ture);if (b) -此句在JDK1.5之前環(huán)境中發(fā)生編譯錯5.2 包裝器類和自動裝箱/拆箱16.枚舉JDK 1.5新增機制格式: enum 枚舉類型名 枚舉常量表 一切的枚舉型都隱式地承繼自Java.lang.Enum該類是一個泛型類,任何類都不能直接擴展該類。枚舉常量按定義順序分別對應索引值0、1、2、等,并自動具

11、備public、static、final等屬性。編譯器為枚舉型附加兩靜態(tài)方法(類Enum中無此方法):5.3 枚舉enum Week MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; Week w; w=Week.FRIDAY; w=SUNDAY; /編譯錯1、public static E values(),前往一個枚舉型數(shù)組,包含 一切枚舉常量,各常量位置按聲明順序存儲2、public static E valueOf(String name) 前往枚舉常量name;假設該常量未定義那么運轉時拋出異常。例如詳見:

12、ch_5_5.java17.緊湊型for循環(huán)構造拷貝數(shù)組Arrays工具類5.4 數(shù)組的高級運用18.for-each循環(huán)構造JDK1.5新增格式:for( Tyep e: exp) S ;其中exp是數(shù)據(jù)集對象必需是數(shù)組或實現(xiàn)了Iterable接口的對象。e是循環(huán)變量相當于exp中的元素。執(zhí)行方式為:1.) 從exp中取出下一個元素賦值給e,執(zhí)行語句S;2.) 假設exp一切元素均已迭代,那么循環(huán)終了;否那么,轉1)。留意:e不能在for-each構造之外定義。5.4 數(shù)組的高級運用void f()int a=1,2,3,4,5;int i=0;for( i: a) System.out.p

13、rint( +i); /編譯錯for(int j: a) System.out.print( +j); /正確19.arraycopy:位于System類,用于數(shù)組復制void arraycopy(Object src, int p1, Object dest, int p2, int len)將srcp1.p1+len-1復制到destp2.p2+len-1中Arrays是數(shù)組的工具類,存于java.util包中Arrays提供了用于處置數(shù)組的常用靜態(tài)方法,包括排序sort、binarySearch前提是數(shù)組必需求有序、比較數(shù)組元素能否相等equals、填充數(shù)組元素fill等。5.4 數(shù)組的

14、高級運用例如詳見Ch_5_6.java、Ch_5_7.java20.StringBuffer和StringBuilder正那么表達式字符串的高級運用5.5 字符串的高級運用21.引入期望引入大容量、可更改的字符串存儲對象。StringBuffer類該類對象可看作是一個用于存儲字符串的數(shù)據(jù)塊,可反復修正,反復運用。StringBuilder類JDK1.5版新增,功能與StringBuffer幾乎一樣,執(zhí)行更高效,但在線程中運用不平安。5.5 字符串的高級運用例如詳見Ch_5_8.java22.正那么表達式是一種可以描寫某種詞法規(guī)那么的字符串。 0Xx(0-9a-fA-F)+ 表示十六進制數(shù),含義

15、為:以0作開頭,后接X或x,再后面就是假設干個至少1個數(shù)字、字母a-f或A-F。a-zA-Z_+(w)* :表示C的標識符,標識含義見后。運用:如何識別下面字符串中的十六進制數(shù): 08 + AF- 0 x98AF- Bc * 0XA93bf 5.5 字符串的高級運用23.java正那么表達式的常用描畫符號java正那么表達式的常用描畫符號元字符描述:表達特定含義量詞描述:表達重復次數(shù)元字符含義元字符含義量詞含義d數(shù)字D數(shù)字以外的字符X?表示X至多重復1次(即X要么不出現(xiàn),要么出現(xiàn)1次).任何一個字符w 字字符(字母、數(shù)字、下劃線)X*表示X重復多次(0次)X+表示X重復多次(1次)s空白字符要

16、查找的字符集W字字符以外的字符XnX重復n次-一段連續(xù)的范圍不存在的字符Xn,X重復至少n次&并且()刻畫一個整體Xn,mX重復至少n次,至多m次正那么表達式例如:aeiou 匹配 a、e、i、o、u中的任何一個字符abc 匹配 a、b、c之外的任何一個字符a-cA-c 匹配 a、b、c、A、B、C中的任一字符a-c0-2匹配 a、b、c、0、1、2之外的任一字符(abc)3 匹配 abcabcabca-dx-z 等價于 a-dx-za-z&bc 表示除b、c之外的一切小寫英文字母24.正那么表達式構造正那么表達式類似構造SQL語句,類似編程不同言語在描畫正那么表達式時略有不同。Pattern和Matcher(位于java.util.regex包)公用于正那么表達式處置,處置方法類似KMP算法:現(xiàn)對正那么式編譯優(yōu)化,然后再匹配。5.5 字符串的高級運用根本例如:Ch_5_9.java、Ch_5_10.java綜合例如:C 標識符的識別 IdentifyID.java25.String類中支持正那么表達式的相關方法String split(String regex)/regex是分隔串String replaceFirst(String regex, String rp)String replaceAll(String regex, String rp)留意:

溫馨提示

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

評論

0/150

提交評論