版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java基礎(chǔ)理論知識串講,蘇州NIIT李老師,第一章 Java概述,Java程序的編寫、編譯和執(zhí)行,編寫代碼 可使用任何文本編輯軟件編寫,比如記事本 源代碼文件的擴展名為.java 編譯 使用JDK的編譯命令javac進行編譯 如:javac Hello.java 編譯后生成擴展名為.class的字節(jié)碼 運行 使用JDK的解釋器java運行 如:java Hello,application vs. applet不同點,Java application 由Java解釋器獨立運行字節(jié)碼 程序中包含main方法 Java applet 不能獨立運行,字節(jié)碼必須嵌入HTML文檔(有標記) 源程序必須是
2、java. applet. Applet 類或javax.swing.JApplet類的子類,一個簡單的 application,/Welcome.java public class Welcome public static void main(String args) System.out.println(“Hello World!”); ,源文件名要和該 public類相同,注意String和 System要大寫,編寫Java源程序的注意事項,Java語言區(qū)分大小寫,包括文件名 源文件的名字必須和源代碼中被public修飾的類相同,如果沒有public類可以可以任意命名(不推薦)。 源文
3、件擴展名必須為.java,第二章 基本語法,標識符,是用戶定義的用于表示變量名、類名、接口名、方法名、方法的參數(shù)名等符號。,標識符的命名規(guī)則,由字母、數(shù)字、下劃線_、美元符號$組成 首字母不能是數(shù)字 不能是保留字(50個) 標識符區(qū)分大小寫,練習,下列哪些是合法的標識符: a ,4abc , _test, class 123abc, $test , a,Mr.wang import ,abc#d ,半徑, a1,基本數(shù)據(jù)類型,Java中共八種基本數(shù)據(jù)類型: 數(shù)值型(四種整型,兩種浮點型) 字符型(char一種) 布爾型(boolean一種),數(shù)值數(shù)據(jù)類型,類型名稱 位數(shù) 表示范圍 byte 8
4、 bit -128 127 short 16 bit -32768 32767 int 32 bit long 64 bit float 32 bit 七位小數(shù)(單精度浮點數(shù)) double 64 bit 十五位小數(shù)(雙精度浮點數(shù)) char 16bit 16位的Unicode編碼,類型轉(zhuǎn)換,精度由高到底排序: double float long int short byte,數(shù)值類型轉(zhuǎn)換,總可以將低精度的值賦給高精度類型的變量。 比如:double i=10; 但是,如果不進行強制類型轉(zhuǎn)換,就不能將高精度類型的值賦給低精度類型的變量。,類型轉(zhuǎn)換,類型轉(zhuǎn)換是一種操作,它把一種數(shù)據(jù)類型的值轉(zhuǎn)換成
5、另一種數(shù)據(jù)類型。 用于由高精度向低精度要進行強制類型轉(zhuǎn)換; 例如: float f = 10.1;(錯,浮點型數(shù)默認為double型。) float f = (float)10.1; int i = (int)f;,數(shù)值類型轉(zhuǎn)換,Java中當兩個類型不同的運算對象進行二元運算時,Java 自動 把精度較低的類型轉(zhuǎn)換成另一個精度較高的類型。 見書17頁類型轉(zhuǎn)換基本規(guī)則,算術(shù)運算符,算術(shù)運算符包括:+, -, *, / 和 %。 整數(shù)除法的結(jié)果是整數(shù),如5/2= 2而不是2.5,1/20。 運算符%得出除法的余數(shù),如5%2=1 。,賦值運算符,基本賦值運算符(=) 復(fù)合賦值運算符(如+=) 注意:
6、賦值運算符=的左邊只能是變量,不能是表達式,而右邊可以是數(shù)值也可以是表達式 如a=a+3 (正確) a=b=2(正確) a=a+5=9(錯誤,=的左邊不能是表達式),增量運算符和減量運算符,前置增量/減量運算符:變量先加1或減1,再參與表達式中的運算。 +x 或者 x 后置增量/減量運算符:變量先參與表達式的運算,再加1或減1。 x+ 或者 x,比較運算符,運算符名稱例結(jié)果 大于12false =大于等于1=2false =等于1=2false !=不等于1!=2true,邏輯運算符,運算符 名稱描述 ! 非 邏輯否定,取反 break; case 值2: 語句組2; break; case
7、值N: 語句組N; break; defalut:缺省語句組; ,注意:表達式結(jié)果類型: byte,short,int或者char,while 循環(huán),while循環(huán)的語法如下: while (循環(huán)條件) / 循環(huán)體; ,do循環(huán),do循環(huán)是while循環(huán)的變體。 do / Loop body; while (循環(huán)條件); (注意最后的分號!),for 循環(huán),for循環(huán)的語法如下: for (循環(huán)變量初始化;循環(huán)條件;調(diào)整語句) /循環(huán)體; ,for循環(huán),如果循環(huán)條件省略,就意味著條件為真。 下述語句也是正確的 for(;),break和continue關(guān)鍵字,語句break和語句continu
8、e,可以用在循環(huán)語句中為循環(huán)提供附加控制。 break:立刻終止包含它的最內(nèi)層循環(huán)。 continue:只結(jié)束當前迭代,將程序控制轉(zhuǎn)移到循環(huán)的下一次迭代。,要求會封裝方法,不要把所有的代碼都寫在main方法中,main方法一般都是進行調(diào)用方法的。 比如編寫方法判斷一個數(shù)是否是水仙花數(shù)。(考察大家編寫實現(xiàn)某功能的方法,并在main方法中調(diào)用該方法),第三章 面向?qū)ο笏枷?對象,對象的要素 對象的屬性(特征、狀態(tài)、組成) 對象的行為(改變狀態(tài)、傳遞消息) 對象的標識 (每個對象都有個標號),對象和類型之間的關(guān)系,對象是具體的,類型是抽象的 創(chuàng)建的是類型,使用的是對象,第四章 類與對象,類的定義,修
9、飾符 class 類名 屬性定義 構(gòu)造方法定義 方法定義 ,屬性定義,語法: 表示可有可無 修飾符 類型 屬性名= 初值 ; 類型可以是任何類型,包括8種基本數(shù)據(jù)類型或自定義的引用類型(即屬性可以由一個類的對象充當)。 屬性有默認值。,方法定義,語法: 修飾符 返回值類型 方法名(參數(shù)列表) 語句(組); return語句; ,構(gòu)造方法用于對象的初始化,構(gòu)造方法名與類名一致 構(gòu)造方法沒有返回值類型 如果沒有定義構(gòu)造方法,系統(tǒng)會生成一個默認的無參的構(gòu)造方法 構(gòu)造方法只能用new在創(chuàng)建對象時調(diào)用,不能通過對象名調(diào)用,練習,定義一個矩形類,該類有長和寬兩個屬性,試定義構(gòu)造方法,包括:默認無參的構(gòu)造方
10、法,為長和寬指定初值的構(gòu)造方法。,創(chuàng)建對象,創(chuàng)建對象的語法: 類名 對象名 /這是對象的聲明 對象名 new 類名();/真正創(chuàng)建對象 調(diào)用對象屬性和方法的語法: 對象名.屬性名 對象名.方法名,練習,定義一個教師類,屬性有教師的名字,性別,年齡,教師都是有頭發(fā)的且默認是黑顏色的。試定義構(gòu)造方法及顯示教師基本信息的方法,并定義一個對象將信息顯示出來。,方法的重載(概念一定要理解掌握),重載:一個類中如果同時存在多個方法名相同,參數(shù)列表不同的方法,則他們之間的關(guān)系稱為重載。 要求重點掌握該知識點,方法重載,例: int max(int a , int b) double max(double a
11、 , double b) int max(int a , int b , int c) 要點:方法名相同、參數(shù)列表不同(包括參數(shù)數(shù)目,參數(shù)出現(xiàn)的順序或參數(shù)的類型不同)。返回值類型可以相同也可以不同。,構(gòu)造方法的重載,構(gòu)造方法的重載與方法的重載相同,關(guān)鍵字this,this代表類的當前對象 利用“this.”可以調(diào)用當前對象的成員 this可以實現(xiàn)構(gòu)造方法的調(diào)用 利用this(參數(shù))可以調(diào)用構(gòu)造方法 必須寫在構(gòu)造方法的第一條,對象做方法的參數(shù),基本數(shù)據(jù)類型做方法的參數(shù)傳遞的是數(shù)值。 對象也可做方法的參數(shù)傳遞的是引用(即地址),變量和屬性的作用域,屬性是定義在類中所有方法外的變量(有默認值);而方
12、法內(nèi)定義的變量是局部變量(無默認值)。 屬性不管在何處聲明,它的作用范圍是整個類; 局部變量的使用范圍是從聲明它的那一點到距離它最近的右大括號之間。,包(包中放著好多類),聲明包的方法 package 包名稱; 注意:package必須寫在程序的第一條,引入包中的類,使用其他包中的public類 常用是:關(guān)鍵字 import 包名.類名; 如:import java.applet.Applet; 也可以引入整個包 例如: import java.util.*;,訪問控制修飾符(要掌握),類成員的訪問控制修飾符 public:包內(nèi)包外可訪問 protected:包內(nèi)包外子類可訪問 默認:包內(nèi)可訪
13、問 private:類內(nèi)可訪問,訪問器方法,設(shè)置方法 void set屬性名(屬性類型的參數(shù)) 比如:對屬性radius void setRadius(double radius) 獲取方法 屬性類型 get屬性名() 比如:double getRadius(),static,靜態(tài)屬性 用static修飾的屬性,也稱為類屬性 用于描述一類對象共享的屬性 比如:員工的最低工資,學生的學校名稱等等,static,靜態(tài)方法 用static修飾的方法,也叫類方法 寫靜態(tài)方法時要注意,方法中不能訪問非靜態(tài)成員,注意:,不加static修飾的屬性或方法,必須用對象去調(diào)用。 被static修飾的屬性或方法可
14、通過類名直接調(diào)用,也可通過對象調(diào)用 比如:Teacher例子中可設(shè)學校名的屬性為靜態(tài)的,試考慮可以如何調(diào)用該屬性。,第5章 繼承,繼承的語法,修飾符 class 子類名 extends 父類名 類體; 例如:class Apple extends Fruit ,【注】Java只支持類單重繼承,即只有一個父類的繼承關(guān)系,要點,在繼承中: 子類可以得到父類的屬性和方法。 子類可以添加新的屬性和方法。 子類可以重新定義父類的屬性和方法。 (子類中的內(nèi)容比父類豐富),屬性隱藏,子類可以定義與父類同名的屬性,稱為屬性隱藏。即子類可以重新定義父類的屬性。,調(diào)用屬性的規(guī)則:,先在當前類中找,如果沒有再到其父
15、類中找。 如果想要調(diào)用被隱藏的父類屬性,靜態(tài)屬性可以使用“類名.屬性名”;非靜態(tài)屬性可以用“super.屬性名” 用法見課后習題P156,10題,方法的覆蓋,在子類中可以定義與父類方法頭相同的方法,稱為方法的覆蓋。 也可以說,通過方法覆蓋,子類可以重新定義父類的方法。,方法覆蓋要注意:,子類在重新定義父類中的已有方法時,應(yīng)保持和父類中該方法相同的方法頭,即有完全相同的方法名、返回值類型和參數(shù)列表。 方法覆蓋時,子類方法不能縮小父類方法的訪問權(quán)限。比如:父類的方法如果是protected,子類方法只能是protected或者public,繼承關(guān)系中的構(gòu)造方法,在創(chuàng)建子類對象時,先調(diào)用父類構(gòu)造方法
16、,然后再調(diào)用子類構(gòu)造方法 默認情況下,子類調(diào)用父類無參的構(gòu)造方法,super,在子類中調(diào)用父類的屬性和方法 super指當前類的父類對象,所以不能在靜態(tài)方法中使用。 在子類構(gòu)造方法中顯示調(diào)用父類的構(gòu)造方法。 必須寫在子類構(gòu)造方法的第一條。,總結(jié):this 和super的用法,this代表當前類的對象;super代表當前類的父類對象。 this可以調(diào)用當前類當中的其他構(gòu)造方法,而super可以在子類中調(diào)用其父類中的構(gòu)造方法。 注意:this和super都不能用在static修飾的方法內(nèi);并且this和super不能同時使用,因為都需要放在第一條語句上。,Final使用要點,final可以修飾:
17、屬性或局部變量,不能被修改(常量) 方法,不能被覆蓋(最終方法) 類,不能被繼承(最終類),abstract使用要點,abstract類 不能實例化,只能用于繼承 abstract方法 只有方法頭,沒有方法體 只能定義在抽象類中 注意: 抽象類中可以有具體方法 抽象類中的抽象方法在其非抽象子類中必須實現(xiàn)(覆蓋),父子類對象的使用和轉(zhuǎn)化,父子類的對象在某些情況下可以相互轉(zhuǎn)化。,轉(zhuǎn)化原則,子類對象可以當作父類對象使用 父類對象不能當作子類對象使用 如果父類引用實際指向的是子類對象,那么該父類引用可以通過強制轉(zhuǎn)換成子類對象使用,說明,比如父類是:A,子類是:B B b= new B();/創(chuàng)建子類對
18、象 A a= new B();/創(chuàng)建子類對象但把它定義成父類類型的,它就可以當成父類的對象來用 (類似于:double i=12,整型的12可以當成浮點數(shù)來用),說明,但反過來int i=12.5可以么? 只能int i=(int)12.5。 同理B b=new A()/也不可以,父類的對象不能把他當成子類類型的 除非:A a=new B() B b=(B)a; a仍然還是父類類型的,但可以當成子類對象來用。,說明,如果一個方法的形式參數(shù)定義的是父類的對象,那么在調(diào)用這個方法時可以使用子類的對象來作為實際的參數(shù);(因為子類對象就可以當成父類對象來用) 見書139頁例題,多態(tài)性與方法的動態(tài)綁定,
19、多態(tài):一種功能有多種實現(xiàn)。通過方法的重載和覆蓋可以實現(xiàn)多態(tài)。 動態(tài)綁定:方法體的調(diào)用是在程序執(zhí)行時動態(tài)決定的。即調(diào)用一個方法時看到底是哪個對象在調(diào)用方法。而屬性不能動態(tài)綁定。,練習,定義一個Fruit類,屬性有顏色color,產(chǎn)地place,質(zhì)量quality,該類有一個方法eat,可用打印語句描述水果能吃。該類有子類Apple類,它有自己特有的屬性:品種variety,也有eat方法表示蘋果能吃。,第6章 接口和內(nèi)部類,接口的作用,提供功能規(guī)范的、能夠多重繼承的、特殊的抽象類。 接口中只能定義靜態(tài)常量和抽象方法。,接口定義的語法,public interface 接口名 extends 父接
20、口列表 / 屬性聲明 public static final 屬性類型 屬性名 = 常量值 ; / 方法聲明 public abstract 返回值類型 方法名 ( 參數(shù)列表 ) ; 注意: 1修飾接口的修飾符只有public和默認修飾符兩種。 2接口可以是多重繼承。接口只能繼承接口,不能繼承類。 3屬性必須是常量(有初值),方法必須抽象(無方法體)。,接口的實現(xiàn),類通過implements關(guān)鍵字來實現(xiàn)接口。 類必須實現(xiàn)(覆蓋)接口中描述的方法。 這就體現(xiàn)接口的好處,會強制實現(xiàn)它的類必須得有并且實現(xiàn)接口中定義的方法,否則該類就不能實例化,類實現(xiàn)接口的語法,class 類名 extends 父類
21、 implements 接口列表 覆蓋所有接口中定義的方法; 注意: 1、一個類可以同時實現(xiàn)多個接口,但只能繼承一個類 2、類中必須覆蓋接口中的所有方法,而且,都是公開的,內(nèi)部類,也叫做內(nèi)嵌類,是一種定義在其他類內(nèi)部的類。 內(nèi)部類相當于外部類的一個成員 可以訪問外部類的所有其他成員 使用受到外部類的限制,第7章 異常處理,異常處理的作用,為程序員提供一種解決運行時錯誤的方法。以保證程序的正常運行。 當程序遇到運行錯誤時,會產(chǎn)生并拋出一個信號(異常),然后通過try-catch語句捕獲這個信號(異常),這樣就可以根據(jù)這個信號(異常)的不同進行相應(yīng)的處理。,異常處理語法,try 可能拋出異常的語句
22、組; catch ( 異常類1 e) 異常處理語句組1; . catch ( 異常類n e) 異常處理語句組n; finally 語句組; ,異常處理流程,未產(chǎn)生異常情況: try語句結(jié)束后,不再執(zhí)行catch語句 產(chǎn)生異常并捕獲成功情況: try語句在產(chǎn)生異常處中斷,轉(zhuǎn)到catch語句執(zhí)行; 產(chǎn)生異常未捕獲情況: 所在方法中斷; 寫在finally子句中的語句無論異常是否產(chǎn)生,無論產(chǎn)生的異常是否捕獲成功都要執(zhí)行,異常的拋出語法,在某個方法中 if(條件判斷) throw (new 異常類名); ,異常聲明(異常報告),如果一個方法中可能會存在異常,則需要在該方法頭上用throws關(guān)鍵字聲明該
23、異常。 如果某方法頭部有throws聲明異常,則調(diào)用該方法時建議強制用try catch捕獲,或用throws聲明。,String類,Java中使用String類的對象表示字符串,定義字符串兩種方法: 例如: String s1 = “ this is a string”; String s2 = new String(“another”); String s3 = s1+s2;,String類中常用方法,boolean equals(Object o) 判斷該字符串是否與目標字符串相等,String類中常用方法,int length() 獲取字符串的長度 char charAt(int in
24、dex) 獲取指定位置的字符,index從0開始 String substring(int from,int end) 包括from,不包括end位置上的字符 String substring(int from) 獲取字符串的子串,String類中常用方法,int indexOf(char c) int indexOf(char c,int from) int indexOf(String s) int indexOf(String s,int from) 查找指定字符或者字符串的位置,如果未找到返回1,StringBuffer,String構(gòu)造的字符串一旦創(chuàng)建不能修改 StringBuffer的內(nèi)容可以修改 常用方法append(Str
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省吉安市2025-2026學年第一學期小學六年級語文期末試卷(含答案)
- 河北省張家口市橋東區(qū)2025-2026學年七年級上學期1月期末考試地理試卷(無答案)
- 飛秒激光直寫技術(shù)解讀
- “十五五”深度研究系列報告:如何推動進出口平衡發(fā)展
- 飛機科普教學課件
- 2026湖南長沙市芙蓉區(qū)東湖街道社區(qū)衛(wèi)生服務(wù)中心招聘考試參考題庫及答案解析
- 市場調(diào)查及咨詢服務(wù)公司安全管理責任制度
- 2026紹興市越城區(qū)城市運營服務(wù)有限公司市場化用工招聘4人備考考試題庫及答案解析
- 2026山東事業(yè)單位統(tǒng)考菏澤市鄆城縣招聘備考考試試題及答案解析
- 特殊類藥品授權(quán)管理制度(3篇)
- 粉煤灰制磚項目可行性研究報告
- 冬季道路施工應(yīng)對措施
- 云南省昆明市官渡區(qū)2024-2025學年九年級上學期期末學業(yè)質(zhì)量監(jiān)測英語試題(含答案)
- 企業(yè)員工培訓分層方案
- 體檢中心新員工培訓教材
- 衛(wèi)生院綜合樓施工組織設(shè)計
- 淮安市2022-2023學年七年級上學期期末歷史試題【帶答案】
- 腦動脈供血不足的護理查房
- 《中醫(yī)藥健康知識講座》課件
- 中國地級市及各省份-可編輯標色地圖
- 急性消化道出血的急診處理
評論
0/150
提交評論