java基礎(chǔ)知識(shí)點(diǎn)_第1頁(yè)
java基礎(chǔ)知識(shí)點(diǎn)_第2頁(yè)
java基礎(chǔ)知識(shí)點(diǎn)_第3頁(yè)
java基礎(chǔ)知識(shí)點(diǎn)_第4頁(yè)
java基礎(chǔ)知識(shí)點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一天課程 (2012-7-10)JAVA常用的名詞JVM java 虛擬機(jī)Application 應(yīng)用程序 必須有一個(gè)入口的方法叫做 public static void main(String args)Applet 小應(yīng)用程序 該程序必須要內(nèi)嵌在一個(gè)容器中運(yùn)行,它有自己的生命周期重點(diǎn): JAVA的開發(fā)環(huán)境 JDK: java 開發(fā)工具集 JDK版本問題 1.4不支持泛型 5.0 泛型 6.0 枚舉 默認(rèn)安裝路徑C:Program FilesJava JRE: JAVA運(yùn)行時(shí)環(huán)境環(huán)境變量的配置(1) Path:window尋找可執(zhí)行應(yīng)用程序的一個(gè)查找路徑 不同的路徑之

2、間使用;來分隔配置一個(gè)路徑 C:Program FilesJavajdk1.6.0_26bin(2) CLASSPATH 告訴系統(tǒng)到那些目錄下面去查找對(duì)應(yīng)的要執(zhí)行的文件 .;D:3020j2secxchapter1 .表示當(dāng)前目錄 預(yù)習(xí)作業(yè):常用的DOS命令 切換目錄 查詢文件 拷貝文件 重命名 移動(dòng)文件 *表示通配符 *.java *.*常用java命令 Javac 編譯命令 主要將以.java結(jié)尾的Java文件編譯生成以.Class結(jié)尾的二進(jìn)制字節(jié)碼文件。 Javac java文件名.java Java 運(yùn)行命令 java 類名 Javadoc 生成幫助文檔命令 javadoc java文

3、件面向?qū)ο蟮幕靖拍?類 (屬性 方法 構(gòu)造方法 ) 對(duì)象 對(duì)象創(chuàng)建 傳遞 銷毀 面向?qū)ο蟮娜蠡咎匦?封裝、繼承、多態(tài) OOP AOP類 是由客觀事物經(jīng)過大腦抽象而形成概念,是對(duì)一類事物的描述使用class 關(guān)鍵字來描述類 類中有屬性和方法: 屬性對(duì)應(yīng)的是事物的靜態(tài)特性 (可以叫做成員變量) 方法對(duì)應(yīng)的是事物的動(dòng)態(tài)特性對(duì)象:是類的一個(gè)具體的實(shí)例化創(chuàng)建對(duì)象對(duì)象的方法: 類名 對(duì)象名 = new 類名(); 調(diào)用類的構(gòu)造方法來創(chuàng)建對(duì)象 構(gòu)造方法是特殊的方法:方法名=類名注意: 類中屬性和方法必須在創(chuàng)建對(duì)象之后才能使用 對(duì)象.屬性 對(duì)象.方法 .表示引用第二天課程 (2012-7-11)JAVA

4、語(yǔ)言描述類的聲明語(yǔ)法格式: class 修飾詞 class 類名 屬性定義部分 構(gòu)造方法 普通方法 用于修飾class的關(guān)鍵字有兩種:(1) public 公共的 (2)缺省 不寫 表示當(dāng)前類只能在同一個(gè)包中使用注意點(diǎn):(1)一個(gè)java文件中最多只能有一個(gè)類被public 修飾,并且要求使用public修飾這個(gè)類的類名來作為該java文件的文件名。(2)要求將來大家寫代碼的時(shí)候一個(gè)java文件一個(gè)類,并且該類用public修飾,類名與文件名相同類名 /規(guī)范一:類名要求首字母大寫 使用名詞性詞組 (不能使用關(guān)鍵字)/要求編寫代碼統(tǒng)一對(duì)齊,要求整個(gè)java類中采用統(tǒng)一的縮進(jìn)方式 (2,4)聲明屬

5、性: type =defaultValue ; 修飾詞 數(shù)據(jù)類型 屬性名稱 =默認(rèn)初值;屬性的修飾詞四種: public 公共的 private 私有的 default(默認(rèn)) protected受保護(hù)的數(shù)據(jù)類型 主要分成兩大類 : 基本數(shù)據(jù)類型: 整型 浮點(diǎn)型 布爾型 字符型 引用數(shù)據(jù)類型: 屬性名稱 命名規(guī)范:要求首字母小寫,從第二單詞開始的首字母大寫 一般使用名詞性詞組方法的聲明: () Return ; 修飾詞 返回值類型 方法名稱(參數(shù)列表) 語(yǔ)句塊;方法的修飾詞四種: public 公共的 private 私有的 default(默認(rèn)) protected受保護(hù)的返回值類型 主要分

6、成兩大類 : 基本數(shù)據(jù)類型: 整型 浮點(diǎn)型 布爾型 字符型 引用數(shù)據(jù)類型: 注意: (1) 如果沒有返回值的話則使用void來聲明 (2) 方法的返回值只有一個(gè)方法名稱 命名規(guī)范:要求首字母小寫,從第二單詞開始的首字母大寫 一般使動(dòng)詞性詞組 注: 在一個(gè)java類中允許出現(xiàn)多個(gè)同名的方法,但要求形參列表必須不一致(指的是參數(shù)的個(gè)數(shù)或參數(shù)的類型不一致) 形參列表 : 數(shù)據(jù)類型1 參數(shù)名稱1, 數(shù)據(jù)類型2 參數(shù)名稱2, 數(shù)據(jù)類型3 參數(shù)名稱3,備注:JDK1.5之后java語(yǔ)言支持可變參數(shù)列表重點(diǎn) :構(gòu)造方法: 是一類特殊的方法功能:創(chuàng)建其所屬類型的一個(gè)新的對(duì)象。 () 修飾詞 類名(形參列表)

7、語(yǔ)句塊; 特殊點(diǎn): (1)構(gòu)造方法可以用于創(chuàng)建對(duì)象,可以直接使用,不需要通過對(duì)象來調(diào)用。 (2)在構(gòu)造方法中需要完成對(duì)屬性的初始化賦值。 (3)在一個(gè)類允許出現(xiàn)多個(gè)構(gòu)造方法 (4)每個(gè)類必須至少擁有一個(gè)構(gòu)造方法 該規(guī)則由JVM來保證: 如果你編寫的類沒有寫構(gòu)造方法的話,則在該java文件編譯的時(shí)候由編譯器自動(dòng)的為該類添加一個(gè)空的方法體的構(gòu)造方法 如果你編寫的類自帶了構(gòu)造方法的話,則在編譯的時(shí)候,編譯器不會(huì)再為你添加任何的構(gòu)造方法實(shí)戰(zhàn)開發(fā)建議: (1)當(dāng)前類中如果沒有構(gòu)造方法的話,你就不要管了,如果寫了構(gòu)造方法的話,則要求把空的方法體的構(gòu)造方法手動(dòng)加上。(2) 類體中書寫規(guī)范 屬性 構(gòu)造方法 關(guān)

8、于屬性的操作方法放在前面 普通信息的封裝和隱藏使用private 關(guān)鍵來修飾屬性或方法以達(dá)到隱藏屬性或方法的目的; 注:private修飾的屬性和方法只能在當(dāng)前類中使用,其他所有的類都不能訪問實(shí)際開發(fā)過程中類的屬性要求全部使用private來修飾,同時(shí)必須要暴露一組public公共的方法來進(jìn)行操作封裝 暴露一組public公共的方法對(duì)本類的私有屬性進(jìn)行操作的過程。作業(yè): (1) 第2章PPT中的練習(xí)(3) 在昨天編寫的類的基礎(chǔ)上,使用封裝和隱藏去進(jìn)一步完善第三天課程 (2012-7-12)Java 基礎(chǔ)語(yǔ)法 注釋: 三種 / /*/ /* */ 標(biāo)識(shí)符: 關(guān)鍵字不能做標(biāo)識(shí)符 由字母、數(shù)字、_、

9、$ 組成 ,不能以數(shù)字開頭 $開頭的一般表示為內(nèi)嵌 也可以表示成臨時(shí)數(shù)據(jù)類型: 基本類型 整型 :byte 8 short 16 int 32 long 64 默認(rèn)int 浮點(diǎn)型: float 32 double 64 默認(rèn)double float f = 3.14f; 字符型: char關(guān)于字符的概念 字符編碼:ASCII編碼 Unicode編碼字符集:采用相同編碼形式存放的字符的集合。常用的字符集:中文 GB2312 GBK GB18030 拉丁 italic Utf-8字符集 ISO-8859-1 常用轉(zhuǎn)義字符: n 換行 r回車 t tab鍵 ” 布爾型: Boolean 兩種值 tr

10、ue false 引用類型 作業(yè): (1)引用類型的用法例子,去測(cè)試一把 (2) 將值傳遞的例子測(cè)試 (3) 標(biāo)準(zhǔn)輸入/輸出 自己完成對(duì)象構(gòu)造和初始化 注:類中的成員變量初始化由三步: (1)根據(jù)數(shù)據(jù)類型進(jìn)行默認(rèn)值的初始化 要求掌握8種基本類及引用類型的默認(rèn)值 (2)根據(jù)default后的值來賦值,如果類的屬性沒有default值的話,則跳過該步驟 (3)根據(jù)構(gòu)造方法來賦值,如果沒有構(gòu)造方法的話,則跳過方法: 類的動(dòng)態(tài)屬性 類中方法存放在JVM內(nèi)部的全局代碼區(qū) 注:(1)方法通常通過對(duì)象來調(diào)用,調(diào)用時(shí)必須注意實(shí)參列表與形參列表的個(gè)數(shù)、順序、類型都必須一致。 (2)每個(gè)方法最后都會(huì)有return

11、語(yǔ)句。 如果該方法定義了返回值類型,則在方法體中肯定有return 語(yǔ)句,不能缺省,并且return返回的數(shù)據(jù)類型與返回值類型必須一致。 用void修飾的不需要返回值類型的方法,在JVM編譯的時(shí)候自動(dòng)會(huì)添加return ;語(yǔ)句,所以不要自己寫return 。 特殊的構(gòu)造方法,默認(rèn)返回的就是本身的對(duì)象,所以也不需要寫return語(yǔ)句,由jvm自動(dòng)處理.變量 局部變量: 寫在方法或語(yǔ)句塊內(nèi)部的變量 方法的形參作為局部變量來看待。 注: 要使用的話,必須要先聲明和賦初值之后才能使用 形參除外,原因在 形參在方法被調(diào)用時(shí)也會(huì)根據(jù)傳遞進(jìn)來的實(shí)參進(jìn)行默認(rèn)的初始化賦值 成員變量: 也叫類的屬性 寫在類的內(nèi)部

12、 ,在方法的外部的變量 只要聲明后就可以使用 ,原因在于成員變量在對(duì)象創(chuàng)建的時(shí)候會(huì)根據(jù)數(shù)據(jù)類型進(jìn)行自動(dòng)默認(rèn)初始化賦值。變量的作用范圍:解決重名問題的規(guī)則:就近原則第四天課程 (2012-7-13)輸入與輸入 Scanner 類的用法 了解 System.out.println() 用于向控制臺(tái)輸出任意類型的數(shù)據(jù) 以后該語(yǔ)句只允許出現(xiàn)main() 方法中。 在實(shí)際中主要用于調(diào)試 System.out.printf(“%10.2f”,) /了解關(guān)鍵字this 重點(diǎn) 有四種用法 (1) 調(diào)用類的屬性 this.屬性 在構(gòu)造方法中使用,給類的屬性賦值,解決命名沖突問題。 (2) 調(diào)用類的普通方法 th

13、is.方法名()(3)調(diào)用構(gòu)造方法 this(參數(shù)列表.) 注意: (1) this()該語(yǔ)句必須放在構(gòu)造方法的第一條指令。 (2) 使用this()來調(diào)用構(gòu)造方法的話,在本類中必須至少有一個(gè)不包含this調(diào)用的構(gòu)造方法作為退出構(gòu)造來使用 (4) 表示當(dāng)前對(duì)象 this = 運(yùn)算符:Infinity 在java語(yǔ)言中表示無(wú)窮大 - NaN 表示not a number 不是一個(gè)數(shù)字 負(fù)數(shù)的二進(jìn)制-負(fù)十進(jìn)制的轉(zhuǎn)換 (1)-1 (2)取反 (3)轉(zhuǎn)換為十進(jìn)制 (4)*-1負(fù)十進(jìn)制的轉(zhuǎn)換 - 負(fù)數(shù)的二進(jìn)制(1) 取絕對(duì)值 (2)轉(zhuǎn)為二進(jìn)制 (3)取反 (4)+1作業(yè): 八種基本類型的數(shù)據(jù)之間的轉(zhuǎn)換第

14、五天課程 (2012-7-16)分支語(yǔ)句 單路分支 : if(條件)語(yǔ)句塊 雙路分支 : if(條件1) 語(yǔ)句塊1 else 語(yǔ)句塊2 多路分支 : if (條件1) 語(yǔ)句塊1 else if (條件2) 語(yǔ)句塊2 else if(條件3) 語(yǔ)句塊3 else 語(yǔ)句塊4 Switch() Case : Break; Case : 題目:(1) 接收鍵盤輸入的學(xué)生的成績(jī) 輸出該成績(jī)所屬的等級(jí)90100 優(yōu)秀 8090 良 7080 中等 6070及格 60 不及格(2) 接收鍵盤輸入的三個(gè)數(shù)字,輸出其中的最大值要求求三個(gè)數(shù)的最大值要編寫一個(gè)方法 (3) 接收鍵盤輸入的數(shù)字0星期日 6星期六 輸出

15、對(duì)應(yīng)的星期幾 (4) 接收鍵盤輸入的年份,輸出是否為閏年要求專門編寫一個(gè)方法來判斷是否為閏年 (5) 接收鍵盤輸入的年份和月份,輸出該月有多少天循環(huán)語(yǔ)句 For(初始化部分; 循環(huán)條件部分 ; 迭代部分) 循環(huán)體部分;素?cái)?shù) : 除1和它本身之外,不能被其他任何數(shù)整除備注: 一般情況下 循環(huán)最多只能使用兩層嵌套重點(diǎn): break; continue;Break 標(biāo)簽名;指的是跳出標(biāo)簽名所指向的那一層循環(huán)題目:(1) 求110的積(2) 打印如下乘法口訣表 1*1=11*2=2 2*2=4 1*3=3 2*3=6 3*3=9 . 1*9=9 . 9*9=81 (3) 輸出200300之間的素?cái)?shù),要

16、求每8個(gè)一行 (注:不允許使用continue 標(biāo)簽) (4) 從鍵盤循環(huán)接收數(shù)據(jù),求輸入數(shù)據(jù)的和 當(dāng)接收到Y(jié)字符時(shí)退出 退出時(shí)輸出累計(jì)的和(6) 打印出一個(gè)指定層數(shù)的菱形 (6) 打印出一個(gè)指定層數(shù)的空心菱形 (思考題)第六天課程 (2012-7-17)作業(yè): 編寫程序,采用適當(dāng)?shù)难h(huán)和流控制語(yǔ)句實(shí)現(xiàn)下述功能:打印輸出0200之間能被7整除但不能被4整除的所有整數(shù);要求每行顯示6個(gè)數(shù)據(jù);遞歸: 必須滿足的兩個(gè)條件: 1、 遞推公式 2、 終止條件正態(tài)分布數(shù)組: 熟練一維數(shù)組的定義、創(chuàng)建、賦值、取值、遍歷、修改 掌握二維數(shù)組 了解多維數(shù)組 數(shù)組中的每個(gè)元素相當(dāng)于該對(duì)象的成員變量,也就意味著,數(shù)

17、組創(chuàng)建的時(shí)候,每一個(gè)值首先會(huì)根據(jù)數(shù)據(jù)類型賦初值。數(shù)組已經(jīng)創(chuàng)建則長(zhǎng)度固定,定長(zhǎng)的,且存放數(shù)據(jù)的內(nèi)存單元之間是連續(xù)的練習(xí): 打牌 定義一個(gè)數(shù)組用于存放4種花色的52張牌,完成初始化,并且輸出內(nèi)容。Arrays.sort()方法要求掌握第七天課程 (2012-7-18)包 : 使用package 來描述一個(gè)包 聲明包的語(yǔ)法規(guī)則 : package 包名; 該指令必須是類的第一條指令 包名的命名規(guī)則:公司對(duì)應(yīng)的域名.總的項(xiàng)目名稱.模塊名稱.子模塊名稱.自己開發(fā)的模塊名注意:帶包名的java 類 必須要使用如下的格式去進(jìn)行編譯 Javac -d . java文件名 -d表示要帶包編譯生成java類 .表

18、示在當(dāng)前目錄下生成包結(jié)構(gòu) Java 包名.類名 來運(yùn)行該類每個(gè)類都必須隸屬一個(gè)包,并且對(duì)應(yīng)一個(gè)根目錄。命名空間,一個(gè)類如果沒有定義包的話,則編譯后會(huì)放置到默認(rèn)的命名空間中去 defaultpackage使用包的過程應(yīng)該注意: (1)如果導(dǎo)入的不同的包中有同名的類的話,使用的時(shí)候?yàn)榱藚^(qū)分開來,則必須在類名前帶上包名一起使用。(2) 如果要導(dǎo)入一個(gè)包下的所有的類,可以使用*來描述。不用擔(dān)心效率問題 (3) 缺省導(dǎo)入java.lang 包重點(diǎn) : 繼承 extends 在其他人編寫的類的基礎(chǔ)之上進(jìn)行利用和擴(kuò)展 (1)其他人所編寫的類中的屬性和方法 你可以通過繼承的方法直接拿來就用 (2)在其他人開的

19、功能的基礎(chǔ)上添加屬于你自己的新功能用法: (1)代碼重用.Class A extends BA : 子類, 派生類B: 父類Object類是所有Java類的最高層父類 (超類) ,主要是由于該類通過方法來描述了類的定義和表示、以及對(duì)對(duì)象的管理(聲明,克?。┐嬖谌秉c(diǎn): 單繼承, java語(yǔ)言為什么只能單繼承作業(yè): 普通人 (姓名,性別,年齡,居住地址,吃飯、睡覺、行走、)教師 ( 教學(xué)年齡,教師資格,教學(xué)、備課)學(xué)生 ( 所在班級(jí),學(xué)號(hào),上課、預(yù)習(xí))訪問控制權(quán)限 : 見表格方法的重寫(覆蓋)和重載重寫:發(fā)生在子類和父類之間,也就是說必須要要有繼承關(guān)系才會(huì)有重寫 子類去重寫父類中同名的方法,以達(dá)到

20、方法覆蓋的目的。Override 規(guī)則:重寫方法必須和被重寫方法具有相同的方法名稱、參數(shù)列表和返回值類型; 重寫方法不能使用比被重寫方法更嚴(yán)格的訪問權(quán)限; 重寫方法不允許聲明拋出比被重寫方法范圍更大的異常類型。重載:在同一個(gè)類中的同名的方法,只是參數(shù)列表不同 overload 屬性的重寫 有 規(guī)則:屬性名要求一致,但類型可以不一致重載 無(wú)Super 關(guān)鍵字 必須在子類中使用用法:(1) Super.方法() 表示要調(diào)用父類中的方法(2) Super.屬性 表示訪問父類屬性(3) Super() 表示調(diào)用父類的構(gòu)造方法 必須要放在子類的構(gòu)造方法中的第一句語(yǔ)句。在子類對(duì)象創(chuàng)建之前父類對(duì)象必須要先被

21、創(chuàng)建出來。第八天課程 (2012-7-19)比較this和super使用方法Thissuper屬性This.屬性 表示優(yōu)先從本類中查找該屬性,如果本來中沒有該屬性則從父類中查找Super.屬性 直接從父類訪問屬性方法This.方法 表示優(yōu)先調(diào)用本類的方法,如果找不到,則調(diào)用從父類繼承過來的方法Super.方法 直接訪問父類中被子類重寫的方法構(gòu)造This() 表示調(diào)用本類的構(gòu)造方法; 該語(yǔ)句必須放在本類構(gòu)造方法中的第一句;并且要求本類必須至少有一個(gè)不包含this()調(diào)用的構(gòu)造方法;Super() 表示子類對(duì)象創(chuàng)建出來之前必須要?jiǎng)?chuàng)建父類對(duì)象;該語(yǔ)句必須先在子類的構(gòu)造方法的第一句;特殊This 表示

22、當(dāng)前對(duì)象無(wú)重點(diǎn): 多態(tài) 多態(tài):多種狀態(tài)發(fā)生子類和父類之間, 必須要在繼承(或?qū)崿F(xiàn))的基礎(chǔ)上才能產(chǎn)生多態(tài)。 多態(tài)的描述:(1) 子類對(duì)象可以替代父類對(duì)象來使用子類是在父類的基礎(chǔ)之上進(jìn)行功能點(diǎn)擴(kuò)充。 具體用法: /定義變量的多態(tài) Animal a = new Person(); /形參的多態(tài) public void xs(Animal o) Person p = new Person(); Xs(p); /返回值的多態(tài) public Animal getA() Person p = new Person(); Return p; 虛方法的調(diào)用 :指的編譯時(shí)候認(rèn)為是父類中的方法,而實(shí)際運(yùn)行時(shí)是運(yùn)行的

23、子類中的方法。 造型: /要進(jìn)行轉(zhuǎn)換if(o!=null & o instanceof Person) /instanceof 表示判斷當(dāng)前對(duì)象的真實(shí)類型 Person person = (Person)o;/強(qiáng)制轉(zhuǎn)換 造型只能表示從子類強(qiáng)制轉(zhuǎn)換成父類 且必須在多態(tài)的情況下才能進(jìn)行 person.display();/虛方法的調(diào)用 /不能調(diào)用子類新增的屬性和方法 兩個(gè)重要的關(guān)鍵字: static final Static 靜態(tài)的 共享的 使用注意點(diǎn): (1) 只能用于修飾類的屬性、方法、語(yǔ)句塊、內(nèi)部類(2) 使用static來修飾屬性或方法時(shí) ,該關(guān)鍵字應(yīng)放在修飾詞 與類型(或返回值之間) P

24、ublic static String a; Public static void a()(3) 加static 修飾的屬性、方法、語(yǔ)句塊、內(nèi)部類 表示整個(gè)類共享,也就是說:在當(dāng)前類裝載(classlaod)的時(shí)候,這些屬性或方法就已經(jīng)創(chuàng)建出來 可以直接使用類名.來訪問。(4) Static修飾的靜態(tài)方法中不允許調(diào)用非靜態(tài)的屬性(普通屬性)和非靜態(tài)的方法(普通方法)。(構(gòu)造方法除外)普通屬性和普通方法是必須要通過創(chuàng)建對(duì)象才能來調(diào)用的。關(guān)于構(gòu)造方法的說明:(1) 方法名為類名(2) 該方法可以帶參數(shù),這些用于給該類的屬性賦值(3) 返回的是創(chuàng)建出來的對(duì)象,在該方法中不能寫return語(yǔ)句。(4)

25、 該方法前面可以使用的修飾詞:public private (5) Static、final都不允許用來修飾構(gòu)造方法(6) 構(gòu)造方法不允許繼承(7) 如果使用private 來修飾構(gòu)造方法 ,則構(gòu)成單例設(shè)計(jì) 重點(diǎn) : 單例設(shè)計(jì): (1) 該類的構(gòu)造方法私有(3) 該類中一定存在一個(gè)屬于自身類型的屬性 該屬性一定是static,根據(jù)封裝特性,要求使用private來修飾(4) 該類中一定存在一個(gè)公開的方法,并且是static 的,以便其他人可以直接使用類名.該方法名 的方式來調(diào)用,最終能獲取到該類的對(duì)象。(5) 單例 也就是 單個(gè)實(shí)例作業(yè):(1) 編寫一個(gè)符合單例設(shè)計(jì)模式的類 Single(2)

26、 使用Static 來實(shí)現(xiàn)一個(gè)能統(tǒng)計(jì)該類已經(jīng)產(chǎn)生了多少個(gè)對(duì)象的方法Final 關(guān)鍵字 final標(biāo)記的類不能被繼承。 final標(biāo)記的方法不能被子類重寫。 final標(biāo)記的變量(成員變量或局部變量)即成為常量,只能賦值一次。 final標(biāo)記的成員變量必須在聲明的同時(shí)或在每個(gè)構(gòu)造方法中顯式賦值,然后才能使用。 final不允許用于修飾構(gòu)造方法、抽象類以及抽象方法。第九天課程 (2012-7-20)IDE集成開發(fā)工具的使用(1) eclipse IBM免費(fèi)貢獻(xiàn) 使用頻率較高 (2) MyEclipse 收費(fèi) 在eclipse的基礎(chǔ)上添加一些有用,比較常用的插件,以方便開發(fā)人員開發(fā) 推薦使用6.5(

27、3) NetBeans sun公司 不免費(fèi) 使用IDE過程:(1) 創(chuàng)建 workspace 工作平臺(tái)(2) 配置installed JRE (3) 新建JAVA工程抽象類 使用abstract來修飾的class. 抽象方法: 不包含方法體的方法,同時(shí)要使用關(guān)鍵字abstract來修飾。 包含抽象方法的類必須聲明為抽象類。 抽象類的使用:(1)抽象類不一定要包含抽象方法。 (2)抽象類中可以包含普通屬性和普通方法 (3)抽象類不能被實(shí)例化。(不能創(chuàng)建對(duì)象) (4)抽象只能通過其實(shí)現(xiàn)子類來起作用 (5)子類繼承抽象的父類的話,必須實(shí)現(xiàn)其所有的抽象方法,否則,子類自身也必須聲明為抽象類。 (6)a

28、bstract關(guān)鍵字不能和final,static關(guān)鍵字一起使用 (7)abstract不能修飾構(gòu)造方法和屬性 (8)abstract修飾的抽象類雖然不能被實(shí)例化,但是它有構(gòu)造方法,該構(gòu)造為子類對(duì)象的創(chuàng)建提供服務(wù)。接口 (interface) 標(biāo)準(zhǔn) 實(shí)現(xiàn)不相關(guān)類的相同行為 USB接口 PS-2接口 RS232串口 是一種特殊的類,里面只包含抽象方法和全局常量。接口不能被實(shí)例化,必須通過其實(shí)現(xiàn)類來起作用。聲明一個(gè)語(yǔ)法: 修飾詞 interface 接口名 多態(tài)特性的第二種用法: 實(shí)現(xiàn)類和接口之間也具有多態(tài)性,接口可以使用實(shí)現(xiàn)類的對(duì)象來替代。實(shí)現(xiàn) implements一個(gè)類去實(shí)現(xiàn)一個(gè)接口,也就意味

29、著要實(shí)現(xiàn)接口中所有的抽象方法,否則該類必須聲明為抽象類。 class extends implements ,* declarations*類、接口之間的關(guān)系:(1) 類與類之間只能是繼承關(guān)系,并且是單繼承(2) 類與接口之間只能是實(shí)現(xiàn)關(guān)系,并且可以支持多重實(shí)現(xiàn)(3) 接口與接口之間只能是繼承關(guān)系,并且支持多重繼承 子接口對(duì)象可以替代父接口對(duì)象來使用。多態(tài)的表現(xiàn)形式: 類的多態(tài):(1) 子類可以替代父類使用 具有繼承關(guān)系的子類和父類之間的多態(tài)(2) 現(xiàn)實(shí)類可以替代接口使用 實(shí)現(xiàn)類和接口之間的多態(tài) 屬性的多態(tài) 屬性的重寫 方法的多態(tài) 方法的重載常用的設(shè)計(jì)模式 實(shí)戰(zhàn)過程中的運(yùn)用:(1) 抽象類的用

30、法: 模板設(shè)計(jì)假設(shè)有一個(gè)人類 姓名 性別 年齡 說話() 教師類 學(xué)生類 工人類 /編寫一個(gè)學(xué)生檔案的模板類姓名性別出生日期學(xué)歷籍 貫聯(lián)系方式畢業(yè)時(shí)間身份證號(hào)畢業(yè)院校專 業(yè)興趣愛好現(xiàn) 住 址家庭地址(2) 接口用法USB接口 第十天課程 (2012-7-23)(3) 抽象和接口的混合使用適配器設(shè)計(jì)模式 (4) 接口作為標(biāo)準(zhǔn)的用法工廠設(shè)計(jì) 降低代碼的耦合度由于天氣比較熱,所以最好要有水果吃讓大家定義吃水果的接口有一個(gè)吃的方法然后編寫蘋果、西瓜、橘子 三個(gè)實(shí)現(xiàn)類 編寫一個(gè)測(cè)試類去吃 蘋果、西瓜、橘子代理設(shè)計(jì)假設(shè)你吃水果了沒有付錢就走了,過了幾天,我去找你要錢,結(jié)果你死不承認(rèn),你要賴賬,我回來心里很

31、不平衡,我找到討債公司替我去要錢。討債公司準(zhǔn)備道具,買了手槍,硫酸,匕首, 你害怕了,之后就還錢,討債公司替我要到了錢, 最后銷毀道具。實(shí)際: 項(xiàng)目經(jīng)理布置,你去查找一下這項(xiàng)目在那些環(huán)節(jié)會(huì)存在瓶頸問題。動(dòng)態(tài)代理作業(yè): 假設(shè)要在淘寶網(wǎng)站開店 有一個(gè)倉(cāng)庫(kù) 買鞋子、衣服、褲子、手槍 abstract抽象和 interface接口的總結(jié)面向接口的編程區(qū)別抽象類接口組成有普通屬性,普通方法,構(gòu)造方法,抽象方法(抽象類比普通類多了一個(gè)抽象方法)只允許存在全局常量和抽象方法關(guān)鍵字abstractInterface 抽象類必須通過子類來起作用接口必須通過實(shí)現(xiàn)類來起作用Extend繼承的方式來實(shí)現(xiàn)實(shí)現(xiàn)類是通過i

32、mplements來實(shí)現(xiàn)接口存在單繼承的局限一個(gè)接口可以被多個(gè)實(shí)現(xiàn)來實(shí)現(xiàn)一個(gè)實(shí)現(xiàn)來可以同時(shí)實(shí)現(xiàn)多個(gè)不同的接口抽象類中可以包含內(nèi)部接口接口也允許存在抽象類模板設(shè)計(jì)工廠設(shè)計(jì)、代理設(shè)計(jì)適配器設(shè)計(jì)特點(diǎn)作為標(biāo)準(zhǔn)存在嵌套類 嵌套在某一個(gè)類內(nèi)部的類。內(nèi)部類: 要求掌握匿名類內(nèi)部類寫在一個(gè)類的內(nèi)部,其所有的語(yǔ)法規(guī)范和之前講過的相同。訪問方式不同實(shí)戰(zhàn)過程中運(yùn)用:使用內(nèi)部類來定義數(shù)據(jù)結(jié)構(gòu)使用指針結(jié)構(gòu)來完成的鏈表思考題: 在理解鏈表的基礎(chǔ)上去完成 雙向鏈表第十一天課程 (2012-7-24)異常處理(1) 了解異常的類型(2) 掌握捕捉異常的方法(3) 學(xué)會(huì)自己定義異常異常 (exception) 違例 指的程序運(yùn)

33、行過程中發(fā)生的違例 與編譯無(wú)關(guān)常見的異常NullPointerException 空指針異常 說明肯定有一個(gè)引用類型的變量沒有被賦值而直接使用。ArrayIndexOutOfBoundsException 數(shù)組下標(biāo)越界異常 說明訪問的下表超過了數(shù)組的最大長(zhǎng)度。IndexOutOfBoundsException 下標(biāo)越界java.lang.ArithmeticException 算術(shù)運(yùn)算異常 說明算術(shù)表達(dá)式中存在問題自己捕捉異常的方法 Try 可能出現(xiàn)異常的語(yǔ)句塊; catch(異常的類型1) /匹配類型 出現(xiàn)異常之后需要執(zhí)行的代碼; catch(異常類型2) finally /最終語(yǔ)句塊 最后

34、需要執(zhí)行的語(yǔ)句塊;Trycatch()Trycatch()()finally這是一個(gè)整體 注意點(diǎn):1、 catch部分捕捉的是由系統(tǒng)拋出的異常對(duì)象2、 如果存在多個(gè)catch的時(shí)候,必須要把小范圍的異常寫在前面,大范圍的異常捕捉在后3、 Finally表示的是最終一定會(huì)執(zhí)行的語(yǔ)句塊,一般情況下不要缺省,實(shí)際開發(fā)過程中用于關(guān)閉第三方資源。4、 Trycatch()finally可以支持無(wú)限層次嵌套,備注:日常開發(fā)過程中不建議使用5、 Throws 異常的類型 6、 打印輸出異常的對(duì)象 e. printStackTrace ()方法 使用單獨(dú)的線程去 打印棧的軌跡6、 人工手動(dòng)拋出異常Throw

35、異常的對(duì)象 7、自定義異常類 通過extend 系統(tǒng)預(yù)定義異常類來實(shí)現(xiàn) Throw 自定義異常類的對(duì)象UUID 唯一標(biāo)識(shí)符(ID) 在java語(yǔ)言中用來標(biāo)記唯一的一個(gè)類,將來的由這個(gè)類生成的對(duì)象如果需要在網(wǎng)絡(luò)上進(jìn)行傳輸?shù)脑?,一定要求有唯一?biāo)記。 Assert 斷言 了解作業(yè): 把PPT上關(guān)于trycatch的用法的例子自己調(diào)試 棧的軌跡的打印 自定異常并捕捉異常處理第十二天課程 (2012-7-25)常用的JAVA類 掌握Object 類 toString equals clone wait notify熟練掌握 (1) 字符串 、 數(shù)字、 日期 三者之間的相互轉(zhuǎn)換 (2) 國(guó)際化相關(guān)的類 國(guó)

36、家、語(yǔ)言、時(shí)區(qū)、時(shí)間Object類 hashCode() 用于返回一個(gè)哈希碼 返回的是int 類 實(shí)際過程中用于描述內(nèi)存單元的地址 需要十六進(jìn)制 int = 十六進(jìn)制 Integer.toHexString(int i)toString() 該方法以字符串的形式來描述一個(gè)類equals() 該方法用于比較兩個(gè)對(duì)象是否相等 實(shí)際過程:比較兩個(gè)對(duì)象是否相等, 對(duì)象排序問題 在排序中使用了比較對(duì)象的規(guī)則,所以將來對(duì)對(duì)象進(jìn)行排序要求同時(shí)改變比較規(guī)則,應(yīng)該使兩者的規(guī)則保持一致。 finalize() 該方法表示在對(duì)象銷毀的時(shí)候必須要調(diào)用的方法 該方法不是由你去調(diào)用的的,而是由垃圾回收線程來調(diào)用的。clo

37、ne() 克隆方法 該方法用于復(fù)制一個(gè)對(duì)象 注意點(diǎn):如果本類要能進(jìn)行克隆,必須要求該類去實(shí)現(xiàn)Cloneable接口 分類: 淺層克隆 深層克隆實(shí)戰(zhàn)過程: 比較基本數(shù)據(jù)類型使用 = 對(duì)值進(jìn)行比較 比較引用類型的話必須要使用 equals()這個(gè)方法 Equals()方法使用要注意: 如果存在常量字符串的話,必須要把常量字符串寫在之前 例如 “常量字符串”.equals(對(duì)象名稱)Token 令牌技術(shù)字符串相關(guān)的類String 表示的是長(zhǎng)度不可修改的字符串 , 在進(jìn)行字符串連接操作的時(shí)候最起碼需要2的所有字符的空間才能完成操作, 因此在實(shí)戰(zhàn)過程一般不使用 + 來進(jìn)行大字符串連接。 用法備注: 使用

38、String 來聲明變量 String str = 字符串 不要使用 String str = new String(字符串); 實(shí)戰(zhàn)過程 處理字符集編碼問題的時(shí)候需要用到String的構(gòu)造方法String類中的常用方法concat() 字符串連接replace() 字符串替換 substring() 字符串截取 toLowerCase() 轉(zhuǎn)換為小寫 toUpperCase() 轉(zhuǎn)換為大寫 trim() 首尾去空格charAt() 獲取指定下標(biāo)位置的字符 startsWith() 判斷是否以XXX開頭 、indexOf() 判斷是否包含某個(gè)子字符串,返回該子字符串在原字符串中的首次出現(xiàn)的位置

39、lastIndexOf()判斷是否包含某個(gè)子字符串,返回該子字符串在原字符串中的尾部出現(xiàn)的length()獲取字符串的長(zhǎng)度equals() 比較字符串是否相等equalsIgnoreCase() 大小寫不敏感的比較 compareTo() 比較兩個(gè)字符串的大小 int 1 表示前面字符串字符串 0 相等 -1小于 來表示 split() 按指定的分隔符將字符串轉(zhuǎn)換為數(shù)組 StringBuffer 在實(shí)戰(zhàn)過程用來代替String 來完成大字符串連接的工作。 主要用于XML的拼裝過程 可變長(zhǎng)度的字符串。 append() 在尾部追加字符串insert() 在指定位置插入字符串reverse() 反

40、轉(zhuǎn) setCharAt() 在指定位置插入一個(gè)字符 顯著的特點(diǎn) : 線程安全的類 處理速度要慢StringBuilder 與 StringBuffer用法完全一樣 線程不安全的類 處理速度要快一點(diǎn)StringTokenizer 該類用于將字符串按照一定的分隔符轉(zhuǎn)換為字符串?dāng)?shù)組 創(chuàng)建StringTokenizer對(duì)象的時(shí)候如果沒有指定分隔符的話,默認(rèn)為空格 實(shí)戰(zhàn)過程該可以由String .split()來替代, 以“,”為分隔符 注意:split(符合正則表達(dá)規(guī)則的字符串)封裝類 針對(duì)java言語(yǔ)中的8中基本數(shù)據(jù)類型,在擴(kuò)展功能的基礎(chǔ)形成相對(duì)應(yīng)的類 基本類型 封裝類short - Short b

41、yte - Byte int - Integer long - Long boolean - Boolean char - Character float - Float double - Double 在封裝類中封裝了從該類對(duì)應(yīng)的基礎(chǔ)數(shù)據(jù)類型到String 的轉(zhuǎn)換過程 封裝類中使用的時(shí)候必須要?jiǎng)?chuàng)建對(duì)象 自動(dòng)封裝和拆封 從基本數(shù)據(jù)類 - 對(duì)應(yīng)的封裝類 的轉(zhuǎn)換可以自動(dòng)進(jìn)行 該過程叫自動(dòng)封裝 從封裝類的對(duì)象 對(duì)應(yīng)的基本數(shù)據(jù)類 也可以自動(dòng)進(jìn)行轉(zhuǎn)換 該過程叫自動(dòng)拆封 使用 基本數(shù)據(jù)類型+” - String類型 效率較高 String.valueof(基本數(shù)據(jù)類型) - String類型作業(yè):1、 自

42、己編寫代碼調(diào)用String 中的方法,掌握其具體調(diào)用方法和意義。2、 自己編寫代碼去實(shí)現(xiàn)從封轉(zhuǎn)類與基本數(shù)據(jù)類型之間的轉(zhuǎn)換,與String類型之間的相互轉(zhuǎn)換第十三天課程 (2012-7-26)日期和時(shí)間 全球標(biāo)準(zhǔn)時(shí)間: GMT 格林威治時(shí)間 中國(guó) 東八區(qū)GMT+8 中國(guó)的標(biāo)準(zhǔn)時(shí)間 CST 北京時(shí)間: 在JAVA語(yǔ)言中 Date - long 是可以相互轉(zhuǎn)換的 getTime() 可以使用一個(gè)long類型的數(shù)據(jù)來表示一個(gè)時(shí)間 2000L - 表示什么時(shí)間 單位是毫秒 2000毫秒 = 2秒 基準(zhǔn)時(shí)間 1900 1 1 0 0 0 GMT時(shí)間 1970 1 1 0 0 0 時(shí)間的完整組成: 時(shí)區(qū) 國(guó)

43、家 四季 年 月 日 上午/下午 星期 時(shí) 分 秒 毫秒 微秒 納秒 1. Date類表示時(shí)間的常用類,精確到毫秒 該類中大部分方法已經(jīng)過時(shí) 已過時(shí)的方法,不建議使用(但是能用),肯定會(huì)有替代的方法來使用,必須去參考幫助文檔。 Date() 用于描述具體時(shí)間 其中空的方法的體的構(gòu)造方法不過時(shí),要求掌握,表示創(chuàng)建出當(dāng)前時(shí)間的一個(gè)對(duì)象 包含 年 月 日 星期 時(shí) 分 秒 Date(long )用于描述一個(gè)具體的時(shí)間段 System.currentTimeMillis();得到j(luò)ava的當(dāng)前時(shí)間2. Calendar類 3. Locale類主要包含 國(guó)家和語(yǔ)言 中文/中國(guó) zh/CN 英文/美國(guó) e

44、n/US getAvailableLocales() 得到本機(jī)所支持的所有的國(guó)家和語(yǔ)言 getDefault() 得到本機(jī)默認(rèn)的國(guó)家和語(yǔ)言4. TimeZone類描述時(shí)區(qū)信息的一個(gè)類 getDefault() 獲取此主機(jī)的默認(rèn) TimeZone。5. GregorianCalendar類要求掌握構(gòu)造方法創(chuàng)建出對(duì)象,使用方式可以和Calendar保持一致6. DateFormat類 自學(xué)7. SimpleDateFormat類 該提供了 從 Date String的轉(zhuǎn)換方法 /從Date - String new SimpleDateFormat(yyyy年MM月dd日 HH時(shí)mm分ss秒SSS毫秒 z Z a E).format(new Date() /從String - Date /前提是String里面的內(nèi)容一定是一個(gè)日期 使用Parse()來完成轉(zhuǎn)換,但是要注意String里面的日期的形式一定要和日期模式字符串相匹配數(shù)學(xué)類1. Math類ceil(), 向上取整floor(), 向下取整round() 返回最接近參數(shù)的max(), min() , abs()random() 產(chǎn)生0.01.0之間的隨機(jī)數(shù)Random類 隨機(jī)類 在計(jì)算中沒有真正的隨機(jī)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論