ibm公司java培訓(xùn)ppt下載看看也好_第1頁(yè)
ibm公司java培訓(xùn)ppt下載看看也好_第2頁(yè)
ibm公司java培訓(xùn)ppt下載看看也好_第3頁(yè)
ibm公司java培訓(xùn)ppt下載看看也好_第4頁(yè)
ibm公司java培訓(xùn)ppt下載看看也好_第5頁(yè)
已閱讀5頁(yè),還剩302頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章Java語(yǔ)言概述華中科技大學(xué)IBM技術(shù)中心 2008HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心Java程序相關(guān)問(wèn)題Java虛擬機(jī)HUST & IBM Computer Tech. Centerv Java虛擬機(jī)在真實(shí)機(jī)器中用軟件模擬實(shí)現(xiàn)的一種抽象的機(jī)器。(Java虛擬機(jī)規(guī)范)

2、v Java虛擬機(jī)主要由五個(gè)部分組成:指令系統(tǒng)、寄存器、棧、存儲(chǔ)區(qū)、碎片回收區(qū)v 解釋和執(zhí)行Java程序編譯后產(chǎn)生的字節(jié)碼華中科技大學(xué)IBM技術(shù)中心Java程序Java APIJava虛擬機(jī)操作系統(tǒng)硬件平臺(tái)Java程序相關(guān)問(wèn)題Java APIHUST & IBM Computer Tech. Centerv Java API是Java系統(tǒng)提供的預(yù)先定義好的軟件組件的集合,它們提供了許多可供程序員調(diào)用的常用功能v 豐富的API為程序員提供了極大的方便,但也是學(xué)習(xí)的難 點(diǎn)v 要學(xué)會(huì)使用Java API手冊(cè)(The Java 2 Platform API Specification ) http:/

3、/j2se/1.5/docs/api/index.html華中科技大學(xué)IBM技術(shù)中心Java程序Java APIJava虛擬機(jī)操作系統(tǒng)硬件平臺(tái)Java程序相關(guān)問(wèn)題 Java程序的運(yùn)行機(jī)制HUST & IBM Computer Tech. Center編譯連接運(yùn)行操作系統(tǒng)傳統(tǒng)語(yǔ)言的運(yùn)行機(jī)制編譯解釋執(zhí)行Java解釋器Java語(yǔ)言的運(yùn)行機(jī)制華中科技大學(xué)IBM技術(shù)中心字節(jié)碼源代碼可執(zhí)行代碼目標(biāo)碼源代碼Java程序相關(guān)問(wèn)題Java程序類(lèi)型HUST & IBM Computer Tech. Centerv Java應(yīng)用程序(Java Application) 是獨(dú)立完整的程序 在命

4、令行調(diào)用獨(dú)立的解釋器軟件即可運(yùn)行 主類(lèi)必須有main方法,這也是程序的入口v Java小程序 Java Applet是指在客戶(hù)端運(yùn)行的Java小程序, 一般來(lái)說(shuō)客戶(hù)端是指用戶(hù)所使用的瀏覽器 Java Servlet是在服務(wù)器端執(zhí)行的Java小程序, 為了能夠支持Servlet的運(yùn)行,服務(wù)器端必須安裝包含Java虛擬機(jī)的服務(wù)器軟件,這種能夠支持服務(wù)端小程序的服務(wù)器一般被稱(chēng)為應(yīng)用服務(wù)器華中科技大學(xué)IBM技術(shù)中心Java開(kāi)發(fā)環(huán)境HUST & IBM Computer Tech. Centerv JDK/J2SDK(Java Developer Kit) JDK1.02 JDK1.1.x JDK1.2

5、/J2SDK1.3/J2SDK1.4/JDK5.0(J2SDK1.5)v Java集成開(kāi)發(fā)環(huán)境(IDE) NetBeans JBuilder Eclipse JCreator Forte for Java Visual J+ WSAD 華中科技大學(xué)IBM技術(shù)中心JDK的安裝與設(shè)置HUST & IBM Computer Tech. Centerv 從/可以下載相關(guān)版 本的JDK(本課程采用J2SDK1.3以上版本)v 在Windows平臺(tái)上運(yùn)行安裝程序,以安裝JDKv 設(shè)置PATH(文件路徑)參數(shù)。由于JDK提供的實(shí)用程序都在安裝目錄下的子目錄bin 下,為了

6、能在任何目錄下直接使用文件名調(diào)用這些程序,必須設(shè)置操作系統(tǒng)的文件路徑參數(shù)華中科技大學(xué)IBM技術(shù)中心環(huán)境設(shè)置HUST & IBM Computer Tech. Centerv 在Windows環(huán)境下,為了快速進(jìn)入指定目錄的命令行窗口,可在注冊(cè)表中增加項(xiàng)目:HKEY_CLASSES_ROOTDirectoryshell進(jìn)入命令行command默認(rèn)值設(shè)為:cmd/kcd%1華中科技大學(xué)IBM技術(shù)中心JDK的目錄結(jié)構(gòu)HUST & IBM Computer Tech. Center bin目錄中包含了所有JDK5.0提供的實(shí)用程序 demo目錄中包含了JDK5.0自帶的實(shí)例程序 inculde目錄中包含

7、了一些支持Java native方法的CC+頭文件 jre目錄中包含了Java運(yùn)行環(huán)境所需的所有文件,這個(gè)目錄中所包含的java運(yùn)行環(huán)境是JDK私有的, 它只為JDK的實(shí)用程序提供支持 lib目錄中包含了Java開(kāi)發(fā)環(huán)境所需的庫(kù)文件,它們以jar文件的形式保存 sample目錄中包含的是體現(xiàn)JDK5.0新特性的一些例程華中科技大學(xué)IBM技術(shù)中心JDK實(shí)用程序簡(jiǎn)介HUST & IBM Computer Tech. Centerv javac:Java編譯器,將Java源代碼編譯為字節(jié)碼;v java:Java解釋器,用來(lái)解釋執(zhí)行Java程序的字節(jié)碼文件;v appletviewer(小程序?yàn)g覽器

8、):一種執(zhí)行HTML文件上的Java小程序類(lèi)的Java瀏覽器;v javadoc:根據(jù)Java源代碼及其說(shuō)明語(yǔ)句生成的HTML文 檔;v jdb:Java調(diào)試器,可以逐行地執(zhí)行程序、設(shè)置斷點(diǎn)和檢 查變量;v javah:產(chǎn)生可以調(diào)用Java過(guò)程的C過(guò)程,或建立能被Java程序調(diào)用的C過(guò)程的頭文件;v javap:Java反匯編器,顯示編譯類(lèi)文件中的可訪問(wèn)功能和數(shù)據(jù),同時(shí)顯示字節(jié)代碼含義。華中科技大學(xué)IBM技術(shù)中心Java程序的開(kāi)發(fā)過(guò)程HUST & IBM Computer Tech. Centerv 編輯源代碼v 編譯源代碼文件v 運(yùn)行程序華中科技大學(xué)IBM技術(shù)中心Java程序的開(kāi)發(fā)過(guò)程編輯源

9、代碼HUST & IBM Computer Tech. Centerv 一般情況下,我們可以使用系統(tǒng)平臺(tái)下的任何文本編輯器 進(jìn)行源代碼的編輯,在Windows平臺(tái)下常用的是Window系統(tǒng)自帶的“記事本”程序或“寫(xiě)字板”程序v Java源碼大小寫(xiě)敏感v Java源碼文件的擴(kuò)展名:.javav Java源程序文件也不能隨意命名,其文件名必須與程序 中主類(lèi)的類(lèi)名完全相同,包括大小寫(xiě)在內(nèi)華中科技大學(xué)IBM技術(shù)中心public class MyFirstJavaApp public static void main(String args) System.out.println(“This is My

10、 First Java Application!”);Java程序的開(kāi)發(fā)過(guò)程編譯源代碼HUST & IBM Computer Tech. Centerv 使用JDK實(shí)用程序javac對(duì)源代碼文件進(jìn)行編譯C:MyJavajavac MyFirstJavaApp.java如果系統(tǒng)提示符再次出現(xiàn)并且沒(méi)有任何消息產(chǎn)生,那 么編譯便成功了如果有系統(tǒng)報(bào)錯(cuò)消息產(chǎn)生,則表示程序編譯出錯(cuò),程序員必須閱讀報(bào)錯(cuò)信息,并根據(jù)這些信息對(duì)程序進(jìn)行 修改v 程序成功編譯后,在與源代碼文件同一目錄下會(huì)生成一個(gè)新的文件,其文件名與源代碼文件名相 同,擴(kuò)展名為“.class”。這個(gè)文件就是源代碼文件編譯產(chǎn)生的程序字節(jié)碼文件 My

11、FirstJava.class華中科技大學(xué)IBM技術(shù)中心Java程序的開(kāi)發(fā)過(guò)程運(yùn)行程序HUST & IBM Computer Tech. Centerv 要執(zhí)行一個(gè)Java程序非常簡(jiǎn)單,只需在字節(jié)碼文件所在目錄下輸入下列命令就可以了: java 字節(jié)碼文件名華中科技大學(xué)IBM技術(shù)中心第2章 面向?qū)ο蟮木幊谈拍钊A中科技大學(xué)IBM技術(shù)中心 2006HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心面向?qū)ο髒s. 面向過(guò)程HUST & IBM Computer Tech. Centerv 面向?qū)ο螅∣OP)Object-Oriented Programming

12、 用類(lèi)class封裝數(shù)據(jù)以及與數(shù)據(jù)相關(guān)的操作 用類(lèi)的繼承性來(lái)實(shí)現(xiàn)類(lèi)的重用性 多態(tài)性 面向“對(duì)象”,由對(duì)象提供服務(wù)v 面向過(guò)程(POP)Procedure-Oriented Programming 以功能為組織單元 通過(guò)數(shù)據(jù)結(jié)構(gòu)來(lái)描述具體的問(wèn)題 數(shù)據(jù)在功能(函數(shù))之間以參數(shù)的形式被傳送華中科技大學(xué)IBM技術(shù)中心現(xiàn)實(shí)世界中的對(duì)象HUST & IBM Computer Tech. Centerv 現(xiàn)實(shí)世界是由對(duì)象構(gòu)成的v 現(xiàn)實(shí)世界中任何實(shí)體都可以看作是對(duì)象v 現(xiàn)實(shí)世界中的對(duì)象有兩個(gè)共同特征:狀態(tài)行為華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)

13、IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心消息的性質(zhì)HUST & IBM Computer Tech. Centerv 同一對(duì)象可接收不同形式的多個(gè)消息,產(chǎn)生不同的響應(yīng)v 同一個(gè)消息可以發(fā)給不同的對(duì)象,所做出的響應(yīng)可以截然不同v 發(fā)送方不需要知道接受方如何對(duì)請(qǐng)求予以響

14、應(yīng)的華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心實(shí)例(Instance)HUST & IBM Computer Tech. Centerv 定義:特定類(lèi)所描述的一個(gè)具體對(duì)象華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心單重繼承與多重繼承HUST & IBM Computer Tech. Centerv 單重繼承:一個(gè)子類(lèi)只有一個(gè)唯一確定的父類(lèi) 單重繼承所構(gòu)成的類(lèi)的關(guān)

15、系結(jié)構(gòu)是一棵樹(shù)v 多重繼承:一個(gè)子類(lèi)可以有多個(gè)不同的父類(lèi) 多重繼承所構(gòu)成的類(lèi)的關(guān)系結(jié)構(gòu)是一個(gè)格v Java語(yǔ)言?xún)H支持單重繼承華中科技大學(xué)IBM技術(shù)中心繼承的作用HUST & IBM Computer Tech. Centerv 使軟件系統(tǒng)具有開(kāi)放性v 更好地進(jìn)行抽象與分類(lèi)v 實(shí)現(xiàn)代碼的復(fù)用v 提高可維護(hù)性華中科技大學(xué)IBM技術(shù)中心類(lèi)型(Type)HUST & IBM Computer Tech. Centerv 在面向數(shù)值的編程中,類(lèi)型通常用作數(shù)據(jù)的表示。在Java這樣的強(qiáng)類(lèi)型語(yǔ)言中,在編譯期,每一個(gè)變量和表達(dá)式都有一個(gè)類(lèi)型與之相對(duì)應(yīng)v Java中的類(lèi)型:基本類(lèi)型、類(lèi)、接口華中科技大學(xué)IBM技

16、術(shù)中心接口(Interface)HUST & IBM Computer Tech. Centerv 接口和類(lèi)一樣也是一種類(lèi)型,也同樣包含一些方 法的定義。但與類(lèi)不同的是:接口中所定義的所 有方法都是抽象方法(即沒(méi)有實(shí)現(xiàn)的方法)。v 接口中所定義的方法由實(shí)現(xiàn)(implement)該接口的類(lèi)來(lái)實(shí)現(xiàn),一個(gè)類(lèi)可以同時(shí)實(shí)現(xiàn)多個(gè)接口v 接口機(jī)制使Java的面向?qū)ο缶幊套兊酶屿`活。 解決了單重繼承帶來(lái)的問(wèn)題v 接口定義了對(duì)象的行為模型,相當(dāng)于一個(gè)協(xié)議。 實(shí)現(xiàn)接口的各個(gè)類(lèi)負(fù)責(zé)實(shí)現(xiàn)接口所定義的行為。雖然實(shí)現(xiàn)細(xì)節(jié)各不相同,但對(duì)用戶(hù)來(lái)說(shuō)是一樣的 行為。華中科技大學(xué)IBM技術(shù)中心面向?qū)ο蟮氖纠鼿UST & IBM

17、Computer Tech. Centervv 代碼:ClickMeApp.java , ClickMe.java,Spot.java華中科技大學(xué)IBM技術(shù)中心Spot類(lèi)HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心public class Spot /instance variables private int size; public int x, y;/constructor public Spot() x = -1;y = -1;size = 1;/methods for access to the size instance variabl

18、e public void setSize(int newSize) if (newSize = 0) size = newSize;public int getSize() return size;Spot對(duì)象HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心private Spot spot = null;.spot = new Spot();示例中的消息HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心g2d.setColor(Color.WHITE);g2d.fillRect(0, 0, getWidth(

19、) - 1, getHeight() - 1);示例中的繼承和接口HUST & IBM Computer Tech. Centerpublic class ClickMe extends JComponent implements MouseListener ./Methods required by the MouseListener interface. public void mousePressed(MouseEvent event) if (spot = null) spot = new Spot();spot.setSize(RADIUS);spot.x = event.getX(

20、); spot.y = event.getY(); repaint();public void mouseClicked(MouseEvent event) public void mouseReleased(MouseEvent event) public void mouseEntered(MouseEvent event) public void mouseExited(MouseEvent event) 華中科技大學(xué)IBM技術(shù)中心public class ClickMe extends JComponent implements MouseListener .歡迎提問(wèn)第三章Java語(yǔ)言

21、基礎(chǔ)華中科技大學(xué)IBM技術(shù)中心變量(Variable)HUST & IBM Computer Tech. Centerv 對(duì)象將它的狀態(tài)存儲(chǔ)在變量中v 定義:變量是一個(gè)由標(biāo)識(shí)符命名的數(shù)據(jù)項(xiàng)v 變量名必須是一個(gè)合法的標(biāo)識(shí)符 -一個(gè)以字母開(kāi)頭的無(wú)限制的Unicode字符序列。v 變量的聲明: 類(lèi)型 名稱(chēng) = 初始值; int i; double pi = 3.1415926; String name;華中科技大學(xué)IBM技術(shù)中心數(shù)據(jù)類(lèi)型HUST & IBM Computer Tech. Centerv 每個(gè)變量都必須有一個(gè)數(shù)據(jù)類(lèi)型. 一個(gè)變量的數(shù)據(jù)類(lèi)型決定了它能容納的值和在它上面可以進(jìn)行什么操作。v

22、 Java編程語(yǔ)言有兩大類(lèi)數(shù)據(jù)類(lèi)型: 原始類(lèi)型(primitive) 引用類(lèi)(reference)華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心原始類(lèi)型HUST & IBM Computer Tech. Centerv 原始類(lèi)型變量包含單個(gè)值,其大小和格式與它的類(lèi)型匹配:數(shù)字、字符或布爾值。v Java語(yǔ)言沒(méi)有unsigned類(lèi)型 0xFFFF和0xFF誰(shuí)大?v Java語(yǔ)言必須強(qiáng)制類(lèi)型轉(zhuǎn)換 float f = 0.1; boolean b = 1;華中科技大學(xué)IBM技術(shù)中心引用類(lèi)型HUST & IBM Computer T

23、ech. Centerv 數(shù)組,類(lèi)和接口就是引用數(shù)據(jù)類(lèi)型.與原始類(lèi)型變 量的值不同的是,引用類(lèi)型變量的值是對(duì)應(yīng)變量代表的一個(gè)值或一組值的引用(也就是其地址)v 在其他語(yǔ)言里引用被稱(chēng)為指針或者內(nèi)存地址。Java不支持顯示地使用地址,而是使用變量的名 稱(chēng)代替。華中科技大學(xué)IBM技術(shù)中心變量的引用HUST & IBM Computer Tech. Centerv 通過(guò)變量名引用變量的值v 簡(jiǎn)單名稱(chēng):由單個(gè)標(biāo)識(shí)符組成的名稱(chēng)v 限定名稱(chēng):通過(guò)類(lèi)名或?qū)ο竺酶念?lèi)或?qū)ο笾械某蓡T變量 System.out.println(i+spot.x);華中科技大學(xué)IBM技術(shù)中心作用范圍HUST & IBM Compu

24、ter Tech. Centerv 變量的作用范圍是可以通過(guò)簡(jiǎn)單名稱(chēng)引用該變量的程序區(qū)域v 作用范圍也決定了系統(tǒng)為該變量創(chuàng)建和釋放內(nèi)存的時(shí)間華中科技大學(xué)IBM技術(shù)中心例子HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心int i = 10; if ( i 0) int i = 20;System.out.println(“The value ofi = ” + i);System.out.println(“The value ofi = ” + i);最終變量HUST & IBM Computer Tech. Centerv 你可以在任意范圍里將一個(gè)變

25、量定義為最終變量(final)v 最終變量的值一經(jīng)初始化就不能改變v 類(lèi)似于C語(yǔ)言中的常量(const)華中科技大學(xué)IBM技術(shù)中心final int blankfinal;. . .blankfinal = 0;final int aFinalVar = 0;操作符、表達(dá)式、語(yǔ)句和塊HUST & IBM Computer Tech. Center自學(xué)!華中科技大學(xué)IBM技術(shù)中心第四章對(duì)象基礎(chǔ)和簡(jiǎn)單數(shù)據(jù)對(duì)象華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心對(duì)象的生命周期HUST & IBM Computer Tech. Cente

26、r華中科技大學(xué)IBM技術(shù)中心CreateObjectDeomHUST & IBM Computer Tech. Centerpublic class CreateObjectDemo public static void main(String args) /創(chuàng)建一個(gè)Point對(duì)象和兩個(gè)Rectangle對(duì)象Point origin_one = new Point(23, 94);Rectangle rect_one = new Rectangle(origin_one, 100, 200); Rectangle rect_two = new Rectangle(50, 100);/ 顯示re

27、ct_one的寬、高以及面積System.out.println(Width of rect_one: + rect_one.width); System.out.println(Height of rect_one: + rect_one.height); System.out.println(Area of rect_one: + rect_one.area();rect_two.origin = origin_one;/ 顯示rect_two的位置/設(shè)置rect_two的位置System.out.println(X Position of rect_two: + rect_two.ori

28、gin.x); System.out.println(Y Position of rect_two: + rect_two.origin.y);/ 移動(dòng)rect_two并且顯示它的新位置rect_two.move(40, 72);System.out.println(X Position of rect_two: + rect_two.origin.x); System.out.println(Y Position of rect_two: + rect_two.origin.y);華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)

29、中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心對(duì)象創(chuàng)建的實(shí)例HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心Point origin_one = new Point(23, 94);public class Point public int x = 0; public int y = 0;public Point(int x,

30、int y) this.x = x;this.y = y;HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心構(gòu)造器的重載(Overload)HUST & IBM Computer Tech. Centerv 一個(gè)類(lèi)可以包含多個(gè)構(gòu)造器,這種情況成為構(gòu)造器的重載v 同一個(gè)類(lèi)中的多個(gè)構(gòu)造器通過(guò)參數(shù)的數(shù)目及類(lèi)型的不同來(lái)區(qū)分public class Rectangle public int width = 0; public int height = 0; public Point origin; public Rectangle() origin = new P

31、oint(0, 0);public Rectangle(Point p) origin = p;public Rectangle(int w, int h) this(new Point(0, 0), w, h);public Rectangle(Point p, int w, int h) origin = p;width = w; height = h;.華中科技大學(xué)IBM技術(shù)中心HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心實(shí)例成員與類(lèi)成員HUST & IBM Computer Tech. Centerv 實(shí)例成員包括實(shí)例變量與實(shí)例方法實(shí)例成員

32、依賴(lài)于實(shí)例存在同一個(gè)類(lèi)的不同實(shí)例都擁有一份實(shí)例變量的拷貝,對(duì) 某個(gè)實(shí)例的實(shí)例變量的操作不影響到其它實(shí)例實(shí)例變量遵循對(duì)象的生命周期,隨著對(duì)象的創(chuàng)建而創(chuàng) 建,隨著對(duì)象的消亡而消亡必須通過(guò)實(shí)例的引用來(lái)調(diào)用實(shí)例方法v 類(lèi)成員包括類(lèi)變量與類(lèi)方法類(lèi)成員不依賴(lài)于實(shí)例存在同一個(gè)類(lèi)的不同實(shí)例共享同一個(gè)類(lèi)變量,對(duì)類(lèi)變量的 改變會(huì)影響到所有實(shí)例類(lèi)變量的生存期不依賴(lài)于對(duì)象,其它類(lèi)可以不用通過(guò) 創(chuàng)建該類(lèi)的實(shí)例,直接通過(guò)類(lèi)名訪問(wèn)它們。同樣,類(lèi) 方法也可以直接通過(guò)類(lèi)名訪問(wèn)。華中科技大學(xué)IBM技術(shù)中心實(shí)例成員與類(lèi)成員HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心class ABCD

33、 char data;static int share_data;class Demo ABCDa,b,c,d; /實(shí)例化實(shí)例變量的引用HUST & IBM Computer Tech. Centerv 簡(jiǎn)單名稱(chēng)當(dāng)實(shí)例變量處在作用域內(nèi)(即對(duì)象的類(lèi)的代碼內(nèi)) 的時(shí)候v 限定名稱(chēng)objectReference.variableName當(dāng)實(shí)例變量處在作用域外時(shí)使用限定名稱(chēng)華中科技大學(xué)IBM技術(shù)中心System.out.println(Width of rect_one: + rect_one.width); System.out.println(Height of rect_one: + rect_

34、one.height); int height=new Rectangle().height;關(guān)于變量訪問(wèn)的說(shuō)明HUST & IBM Computer Tech. Centerv 建議不要通過(guò)其它對(duì)象或類(lèi)直接操作對(duì)象的變量,可能引起無(wú)效值v 理想情況下,類(lèi)會(huì)提供一些方法,其他對(duì)象可以通過(guò) 他們檢查或修改變量,確保值有效,而且如果變量的類(lèi)型和名稱(chēng)發(fā)生了變化,不會(huì)影響它的使用者v 在某些情況下,可以允許對(duì)對(duì)象變量的直接訪問(wèn), 以使類(lèi)更小更簡(jiǎn)單,也可使變量適用于更廣泛范 圍;v JAVA編程語(yǔ)言提供了一個(gè)訪問(wèn)控制機(jī)制,通過(guò)這 種機(jī)制,類(lèi)可以決定那些其它的類(lèi)可以直接訪問(wèn)它的變量(第五章中介紹)。華中科

35、技大學(xué)IBM技術(shù)中心調(diào)用對(duì)象的方法HUST & IBM Computer Tech. Centerv 使用限定名稱(chēng)來(lái)調(diào)用對(duì)象的方法objectReference.methodName(argumentList);或者objectReference.methodName();華中科技大學(xué)IBM技術(shù)中心System.out.println(Area of rect_one: + rect_one.area(); rect_two.move(40, 72);int areaOfRectangle = new Rectangle(100, 50).area();關(guān)于方法調(diào)用HUST & IBM Com

36、puter Tech. Centerv 方法被聲明為public,就可以被任何其它的類(lèi)所訪問(wèn)。有時(shí),類(lèi)需要限制對(duì)它的方法的訪問(wèn)v 類(lèi)可以使用與控制變量訪問(wèn)相同的機(jī)制來(lái)對(duì)它的方法進(jìn)行訪問(wèn)控制(第五章中介紹)華中科技大學(xué)IBM技術(shù)中心對(duì)象的清除HUST & IBM Computer Tech. Centerv JAVA運(yùn)行時(shí)環(huán)境在當(dāng)對(duì)象不再被使用的時(shí)候清除它們,這個(gè)過(guò)程就是所謂的“垃圾收集”(garbage collection)v Java的垃圾收集器自動(dòng)掃描對(duì)象的動(dòng)態(tài)內(nèi)存區(qū),對(duì)被引用的對(duì)象加標(biāo)記,然后把沒(méi)有引用的對(duì)象作為垃圾收集起來(lái)并釋放。v 垃圾收集器作為一個(gè)線程運(yùn)行。當(dāng)系統(tǒng)的內(nèi)存用盡或程序

37、中調(diào)用System.gc()要求進(jìn)行垃圾收集時(shí),垃圾收集線程與系統(tǒng)同步運(yùn)行。否則垃圾收集器在系統(tǒng)空閑時(shí)異步地執(zhí)行。華中科技大學(xué)IBM技術(shù)中心無(wú)用對(duì)象的判定HUST & IBM Computer Tech. Centerv 當(dāng)某個(gè)對(duì)象不在被任何引用變量引用時(shí),該對(duì)象 是無(wú)用對(duì)象,將被清除。一般有如下兩種情況:華中科技大學(xué)IBM技術(shù)中心引用變量引用了其它對(duì)象或引用了空對(duì)象StringBuffer s = new StringBuffer(“test1”);s = new StringBuffer(“test2”); / 引用了新的對(duì)象s = null; / 引用為空引用變量超出了作用域String

38、Buffer s = newStringBuffer(“thisisatest”);/ 超出對(duì)象作用域finalize()方法HUST & IBM Computer Tech. Centerv 在對(duì)對(duì)象進(jìn)行垃圾收集前,Java運(yùn)行時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用對(duì)象的finalize()方法來(lái)釋放系統(tǒng)資源。v 某些情況下,程序員可能需要實(shí)現(xiàn)該方法來(lái)釋放不由垃圾收集器所控制的資源。但這種情況非常少見(jiàn)v finalize()方法是在Object中有缺省實(shí)現(xiàn), 在用戶(hù)自定義的類(lèi)中,它可以被覆蓋,但一般在最后要調(diào)用父類(lèi)的finalize()方法來(lái)清除對(duì)象所使用的所有資源華中科技大學(xué)IBM技術(shù)中心問(wèn)題一HUST & I

39、BM Computer Tech. Centerv 下列程序的運(yùn)行結(jié)果?華中科技大學(xué)IBM技術(shù)中心public class SomethingIsWrong public static void main(String args) Rectangle myRect;myRect.width = 40;myRect.height = 50;System.out.println(myRects area is + myRect.area();問(wèn)題二HUST & IBM Computer Tech. Centerv 現(xiàn)有一個(gè)Point和Rectangle對(duì)象,代碼執(zhí)行后有多少引用指向它們?有沒(méi)有對(duì)象

40、需要垃圾收集?華中科技大學(xué)IBM技術(shù)中心Point point = new Point(2,4);Rectangle rectangle = new Rectangle(point, 20, 20); point = null;字符和字符串HUST & IBM Computer Tech. Centerv Java API提供了三個(gè)處理字符數(shù)據(jù)的類(lèi):Character:這個(gè)類(lèi)的實(shí)例可以容納單一的字符數(shù)值。該類(lèi)還定義了一些簡(jiǎn)潔的方法來(lái)操作或者檢查單一字符數(shù)據(jù)。String:這個(gè)類(lèi)用于處理由多個(gè)字符組成的不 可 變 數(shù) 據(jù) 。 StringBuffer:這個(gè)類(lèi)用于存儲(chǔ)和操作由多個(gè)字符組成的可變數(shù)據(jù)

41、。華中科技大學(xué)IBM技術(shù)中心字符類(lèi)(Character)HUST & IBM Computer Tech. Centerv 字符類(lèi)的對(duì)象包含單個(gè)字符值v 當(dāng)需要使用對(duì)象時(shí),可以用字符對(duì)象替代原始的char類(lèi)型的變量華中科技大學(xué)IBM技術(shù)中心字符類(lèi)構(gòu)造器和方法HUST & IBM Computer Tech. Centerv Character(char)Character類(lèi)唯一的構(gòu)造器,它創(chuàng)建一個(gè)字符對(duì)象,其中包含由參數(shù)提供的值,一旦創(chuàng)建了Character對(duì)象,它包含的值就不能改變。v compareTo(Character)這個(gè)實(shí)例方法比較兩個(gè)字符對(duì)象包含的值,這個(gè)方法返回一個(gè)整數(shù)值,表示

42、當(dāng)前對(duì)象中的值是大于、等于還是小于參數(shù)所包含的值華中科技大學(xué)IBM技術(shù)中心字符類(lèi)構(gòu)造器和方法HUST & IBM Computer Tech. Centerv equals(Object)這個(gè)實(shí)例方法比較當(dāng)前對(duì)象包含的值與參數(shù)對(duì)象包含的值,如果兩個(gè)對(duì)象包含的值相等,那么這個(gè)方法返回truev toString()這個(gè)實(shí)例方法將此對(duì)象轉(zhuǎn)換為字符串v charValue()這個(gè)實(shí)例方法以原始char值的形式返回此字符對(duì)象包含的值v isUpperCase()這個(gè)實(shí)例方法判斷一個(gè)原始char值是否是大寫(xiě)字母華中科技大學(xué)IBM技術(shù)中心);字符類(lèi)例程HUST & IBM Computer Tech. C

43、enter華中科技大學(xué)IBM技術(shù)中心public class CharacterDemo public static void main(String args) Character a = new Character(a); Character a2 = new Character(a);Character b = new Character(b);int difference = pareTo(b); if (difference = 0) System.out.println(a is equal to b.); else if (difference 0) System.ou

44、t.println(a is greater than b.程序的輸出: a is less than b. a is equal to a2.The character a is lowercase.System.out.println(a is + (a.equals(a2) ? equal : not equal)+ to a2.); System.out.println(The character + a.toString() + is + (Character.isUpperCase(a.charValue() ? upper : lower)+ case.);字符類(lèi)類(lèi)方法HUST

45、& IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心問(wèn)題HUST & IBM Computer Tech. Center 下列boolean表達(dá)式的值是true還是false?(1)pareTo(b)=0(2)a.equals(b)(3)a=b華中科技大學(xué)IBM技術(shù)中心Character a = new Character(a); Character b = new Character(a);字符串和字符串緩沖區(qū)HUST & IBM Computer Tech. Centerv Java平臺(tái)提供兩個(gè)類(lèi)String和StringBuffer,它們用于存儲(chǔ)和操

46、作字符串由多個(gè)字符組成的字符數(shù)據(jù)。v String類(lèi)用于其值不能改變的字符串;v StringBuffer類(lèi)用于被修改的字符串,通常用來(lái)動(dòng)態(tài)的構(gòu)造字符數(shù)據(jù)。v 字符串是常量,比字符串緩沖區(qū)更高效, 而且字符串可以被共享。華中科技大學(xué)IBM技術(shù)中心字符串(String)HUST & IBM Computer Tech. Centerv 使用字符串常量時(shí),需要?jiǎng)?chuàng)建String對(duì)象,和其 它對(duì)象不同,String對(duì)象可以通過(guò)簡(jiǎn)單賦值語(yǔ)句創(chuàng)建: String name = “Petter”;v 此外,也可根據(jù)String類(lèi)的構(gòu)造函數(shù)創(chuàng)建String對(duì)象: String name = new Strin

47、g(“Petter”);v 對(duì)于程序任何位置出現(xiàn)的雙引號(hào)標(biāo)記的字符串, 系統(tǒng)都會(huì)自動(dòng)創(chuàng)建一個(gè)String對(duì)象。v 可通過(guò)String對(duì)象的方法對(duì)字符串進(jìn)行操作華中科技大學(xué)IBM技術(shù)中心字符串構(gòu)造器HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心字符串的不可變性?HUST & IBM Computer Tech. Centerv String類(lèi)用于其值不能改變的字符串v 觀察下列程序:v 程序運(yùn)行結(jié)果是abc還是abcdefg?華中科技大學(xué)IBM技術(shù)中心public class StringTestpublic static void main(Stri

48、ng args) String s=abc;s=s+“defg; System.out.println(s);HUST & IBM Computer Tech. Center華中科技大學(xué)IBM技術(shù)中心字符串緩沖區(qū)(StringBuffer)HUST & IBM Computer Tech. Centerv String對(duì)象表示的是不可更改的字符串對(duì)象,如果需要修改String對(duì)象所表示的內(nèi)容,必須重新創(chuàng)建一個(gè)對(duì)象: String str = “Petter”; str = str + “ & Bob” + “ & Tom”;v 當(dāng)修改操作頻繁,或字符串的值很大時(shí), 會(huì)額外分配大量?jī)?nèi)存v 因此,

49、Java語(yǔ)言引入了一個(gè)StringBuffer 類(lèi),用來(lái)表示內(nèi)容可以擴(kuò)充和修改字符串對(duì)象華中科技大學(xué)IBM技術(shù)中心StringBuffer構(gòu)造器HUST & IBM Computer Tech. Centerv 必須使用new操作符創(chuàng)建字符串緩沖區(qū)華中科技大學(xué)IBM技術(shù)中心String s = Dot saw I was Tod; StringBuffer dest = new StringBuffer(s);訪問(wèn)器方法HUST & IBM Computer Tech. Centerv 用于獲取關(guān)于對(duì)象的信息的方法被稱(chēng)為訪問(wèn)器方法。v 字符串和字符串緩沖區(qū)都可以使用的一個(gè)串緩沖區(qū)中包含的字符數(shù)

50、。華中科技大學(xué)IBM技術(shù)中心String palindrome = Dot saw I was Tod; int len = palindrome.length();容量HUST & IBM Computer Tech. Centerv 在StringBuffer類(lèi)中還有一個(gè)capacity()方法,它返回分配給這個(gè)字符串緩沖區(qū)的容量,而不是使用量。使用量會(huì)改變,但是容量始終是不變的。華中科技大學(xué)IBM技術(shù)中心通過(guò)索引得到字符HUST & IBM Computer Tech. Centerv charAt()訪問(wèn)器方法,通過(guò)索引從字符串或者字符串緩沖區(qū)得到字符,索引值從零開(kāi)始。華中科技大學(xué)IB

51、M技術(shù)中心String anotherPalindrome = Niagara. O roar again!;char aChar = anotherPalindrome.charAt(9);substring方法HUST & IBM Computer Tech. Centerv 如果要從字符串或者字符串緩沖區(qū)得到多個(gè)字符,可以使用substring方法。v String substring(int)v String substring(int,int)華中科技大學(xué)IBM技術(shù)中心String anotherPalindrome = Niagara. O roar again!;String roar = anotherPalindrome.substring(11, 15);searchHUST & IBM Computer Tech. Centerv string類(lèi)提供兩個(gè)訪問(wèn)器方法,返回特定的字符或者子字符串在字符串中的位置。v indexOf()方法從字符串的開(kāi)頭查找;v lastindexOf()方法

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論