版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java程序設(shè)計(jì)教程
SixthEditionby
Lewis&LoftusChapter3:
使用類和對(duì)象使用類和對(duì)象使用類和對(duì)象所提供的服務(wù)是面向?qū)ο筌浖幕緝?nèi)容,并可為編寫用戶自己的類奠定基礎(chǔ)本章目標(biāo):對(duì)象的創(chuàng)建和引用String
類Java標(biāo)準(zhǔn)類庫(kù)Random
類和Math類格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像2大綱對(duì)象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像3建立對(duì)象變量名代表一個(gè)基本類型值或一個(gè)對(duì)象對(duì)象變量也必須聲明,定義對(duì)象的類可視為對(duì)象的類型Stringtitle;上述聲明后的變量沒有存放任何數(shù)據(jù)一個(gè)對(duì)象變量不能保存對(duì)象本身,而是保存了該對(duì)象的地址,即對(duì)象引用變量4建立對(duì)象一般通過(guò)new
運(yùn)算符實(shí)例化一個(gè)對(duì)象title=newString("JavaSoftwareSolutions");String構(gòu)造方法,初始化新對(duì)象創(chuàng)建一個(gè)對(duì)象也叫實(shí)例化一個(gè)對(duì)象是一個(gè)特定類的實(shí)例5調(diào)用方法對(duì)象初始化后,可用“.”運(yùn)算符來(lái)引用對(duì)象的方法count=title.length()方法可能會(huì)返回調(diào)用值,該值可用于賦值表達(dá)式或運(yùn)算表達(dá)式方法的調(diào)用可想象為要求對(duì)象完成一個(gè)服務(wù)6引用基本變量為它的實(shí)際值,對(duì)象變量為指向?qū)ο蟠鎯?chǔ)單元的指針一般不直接用對(duì)象的實(shí)際地址表示對(duì)象,而是采用圖形化方法表示對(duì)象"SteveJobs"name1num1387賦值賦值操作是取得一份數(shù)值后將其存儲(chǔ)在變量空間基本數(shù)據(jù)類型:num138num296Before:num2=num1;num138num238After:8引用賦值對(duì)于對(duì)象引用,賦值操作為拷貝地址:name2=name1;name1name2Before:"SteveJobs""SteveWozniak"name1name2After:"SteveJobs"9別名兩個(gè)或以上的引用變量指向同一個(gè)對(duì)象時(shí),稱它們?yōu)楸舜说膭e名一個(gè)對(duì)象可以被多個(gè)引用變量所引用別名很有用,但要小心使用當(dāng)利用一個(gè)引用改變其所指的對(duì)象時(shí),同時(shí)也使作為別名的所有引用指向的對(duì)象發(fā)生了改變10垃圾回收當(dāng)一個(gè)對(duì)象的最后一個(gè)引用丟失時(shí),該對(duì)象不能再被程序所使用此時(shí)該對(duì)象沒有任何用處,也叫“垃圾”Java自動(dòng)執(zhí)行垃圾對(duì)象回收,將其所占內(nèi)存空間釋放給系統(tǒng)其他編程語(yǔ)言的程序員必須為垃圾對(duì)象空間回收負(fù)責(zé)11大綱對(duì)象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像12String類String類雖然不是基本數(shù)據(jù)類型,但使用非常普遍,因而不需要采用new
操作符去創(chuàng)建String
對(duì)象title="JavaSoftwareSolutions";這種特殊的語(yǔ)法只對(duì)String類有效每一個(gè)string文本(由雙引號(hào)封裝)代表一個(gè)
String對(duì)象13String方法String
對(duì)象一旦創(chuàng)建,內(nèi)容和長(zhǎng)度就不能再改變因而稱String
類的對(duì)象是不可變的不過(guò)String類提供了幾個(gè)方法以返回新的String對(duì)象,這些新對(duì)象是對(duì)原字符串值修改的結(jié)果14String索引有時(shí)有必要引用字符串里面的特定字符可以通過(guò)字符索引的概念來(lái)處理字符串字符串中第一個(gè)字符的索引為0,下一個(gè)字符索引為1,依次類推字符串“Hello”,字符‘H’
在索引0,字符
‘o’
在索引4SeeStringMutation.java
15大綱對(duì)象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像16類庫(kù)類庫(kù)由一組支持程序開發(fā)的類組成Java標(biāo)準(zhǔn)類庫(kù)可以存在于Java的任何一種開發(fā)環(huán)境中類庫(kù)由幾組相關(guān)的類簇構(gòu)成(System,Scanner,String)除了標(biāo)準(zhǔn)類庫(kù),還可以調(diào)用第三方類庫(kù)17包Java標(biāo)準(zhǔn)類庫(kù)的類還被劃分為包,每個(gè)類屬于一個(gè)具體的包Java語(yǔ)言標(biāo)準(zhǔn)類庫(kù)的包:包名java.utiljavax.xml.parsers功能通用功能創(chuàng)建applets繪圖和建立圖形界面擴(kuò)展圖形功能網(wǎng)絡(luò)通信實(shí)用功能XML文檔處理18Import聲明當(dāng)需要在程序中使用類庫(kù)的類時(shí),每次引用時(shí)必須給出類的全名java.util.Scanner或者可以預(yù)先import
需要的類,然后就可以直接使用類名引用importjava.util.Scanner;為了使用指定包中的任何類,可用*通配符importjava.util.*;19Import聲明每當(dāng)編寫一個(gè)Java程序時(shí),java.lang
包中的類將自動(dòng)成為可用類相當(dāng)于所有程序都包含如下語(yǔ)句:importjava.lang.*;這就是為什么我們能夠在之前的java程序例子里直接使用System
或String
類Scanner類為java.util包的一部分,因而使用前必須先import20Random類Random
類存在于java.util包Random類模擬了偽隨機(jī)數(shù)發(fā)生器Random
對(duì)象基于一個(gè)種子值,在執(zhí)行一系列復(fù)雜計(jì)算后,將會(huì)產(chǎn)生隨機(jī)數(shù)SeeRandomNumbers.java
21Math類Math類存在于java.lang
包Math類提供了大量用于計(jì)算的基本數(shù)學(xué)函數(shù)包括:絕對(duì)值平方根冪三角函數(shù)22Math類Math
類的所有方法都是靜態(tài)方法靜態(tài)方法可以直接通過(guò)類名調(diào)用–不需要
Math類的對(duì)象value=Math.cos(90)+Math.sqrt(delta);SeeQuadratic.java
23大綱對(duì)象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像24格式化輸出NumberFormat類和DecimalFormat
類用于格式化信息,使得打印或顯示出的信息格式編排清晰
NumberFormat
類提供了通用的數(shù)據(jù)格式化能力DecimalFormat
類在模版基礎(chǔ)上進(jìn)行格式化數(shù)據(jù)兩者都屬于java.text包25格式化輸出NumberFormat類為靜態(tài)方法getCurrencyInstance()getPercentInstance()每個(gè)formatter對(duì)象擁有一個(gè)format方法,以特定格式返回信息SeePurchase.java
26格式化輸出DecimalFormat
類可通過(guò)不同方法格式化浮點(diǎn)數(shù)例如,可以指定浮點(diǎn)數(shù)只顯示小數(shù)點(diǎn)后三位DecimalFormat類的構(gòu)造器獲取代表模版的字符串后,以該模版格式化數(shù)字SeeCircleStats.java
27大綱對(duì)象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像28枚舉型Java提供了一種枚舉型數(shù)據(jù)類型,可用于聲明枚舉型變量枚舉值可以定義為所希望的任何標(biāo)識(shí)符下列聲明語(yǔ)句創(chuàng)建了一個(gè)Season枚舉類型enumSeason{winter,spring,summer,fall};枚舉型通過(guò)列舉(枚舉)出變量所有可能的取值29枚舉型一旦定義了枚舉類型,就可以用該類型聲明枚舉類型Seasontime;
并且可以通過(guò)如下語(yǔ)句賦值time=Season.fall;枚舉值通過(guò)枚舉類型名訪問枚舉類型是類型安全的,保證取值有效性30序數(shù)值枚舉型的每個(gè)枚舉值在Java內(nèi)部保存為代表枚舉值序數(shù)的整型數(shù)第一個(gè)枚舉值的序數(shù)值為0,第二個(gè)枚舉值的序數(shù)為1,依次類推程序不能將一個(gè)數(shù)值賦給一個(gè)枚舉型變量31枚舉類型一個(gè)枚舉類型是一種特殊的類,枚舉型變量是對(duì)象變量ordinal
方法返回與一個(gè)枚舉型值相關(guān)聯(lián)的序數(shù)值name
方法返回枚舉值名SeeIceCream.java
32大綱對(duì)象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像33包裝類java.lang
包含有包裝(wrapper)
類,代表一種具體的基本數(shù)據(jù)類型基本類型包裝類byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBooleanvoidVoid34包裝類Integer類創(chuàng)建的對(duì)象將保存一個(gè)int型值 Integerage=newInteger(40);包裝類對(duì)象可用作包含其他類型對(duì)象的容器35包裝類包裝類提供了管理基本類型對(duì)應(yīng)的靜態(tài)方法例如,Integer
類有一個(gè)靜態(tài)方法paseInt,用于將存放在String串中的整型值轉(zhuǎn)換為int型值:num=Integer.parseInt(str);包裝類定義了很有用的靜態(tài)常量例如,Integer類包含MIN_VALUE
和MAX_VALUE
兩個(gè)靜態(tài)常量,分別代表int型數(shù)據(jù)的最大值和最小值36自動(dòng)包裝自動(dòng)包裝是基本數(shù)據(jù)類型與相應(yīng)的包裝對(duì)象之間的自動(dòng)轉(zhuǎn)換: Integerobj; intnum=42; obj=num;上述代碼將一個(gè)int型值賦給Integer對(duì)象引用變量與上述類型轉(zhuǎn)換相反的轉(zhuǎn)換稱為拆除包裝(unboxing),在需要時(shí)自動(dòng)轉(zhuǎn)換37大綱對(duì)象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像38組件和容器除了第二章的applet程序,其余我們討論過(guò)的程序都是基于文本的它們也叫命令行應(yīng)用程序,通過(guò)簡(jiǎn)單的文本提示與用戶交互本節(jié)會(huì)探討擁有圖形用戶界面的Java程序圖形組件是具有圖形用戶界面的Java應(yīng)用程序的基礎(chǔ)39GUI組件一個(gè)GUI組件是一個(gè)對(duì)象,代表一個(gè)用于顯示信息或允許用戶以某種方式與程序進(jìn)行交互的屏幕元素。GUI組件包括標(biāo)簽、按鈕、單行文本框GUI相關(guān)的類主要定義在java.awt
和javax.swing
包抽象窗口工具包(AbstractWindowingToolkit,
AWT)是JavaGUI的原始版Swing
是后期增加的包,提供的組件比AWT包的組件更加多樣化上述兩個(gè)包在創(chuàng)建JavaGUI應(yīng)用程序時(shí)都不可缺少40GUI容器GUI容器是一個(gè)保存和組織其他組件的特殊GUI組件框架(frame)是一個(gè)容器,用于顯示基于GUI的Java應(yīng)用程序界面一個(gè)框架顯示為具有標(biāo)題欄的獨(dú)立窗口,可以根據(jù)需要用鼠標(biāo)拖曳著在屏幕上重定位和改變窗口大小面板(panel)也是一個(gè)容器,但與框架不同,面板自身不能獨(dú)立顯示面板必須加到一個(gè)可以顯示它的容器中,面板也不能獨(dú)自移動(dòng),只能隨這包含該面板的容器移動(dòng)41GUI容器GUI容器分為兩類:重量級(jí)容器和輕量級(jí)容器重量級(jí)容器由支持程序運(yùn)行的底層操作系統(tǒng)管理輕量級(jí)容器由Java程序自己管理在探討GUI開發(fā)時(shí),這種區(qū)別有時(shí)很重要框架是重量級(jí)容器,面板則是輕量級(jí)容器42標(biāo)簽標(biāo)簽(label)組件用于顯示用戶界面的一行文本,也可以顯示一幅圖片標(biāo)簽最常用于顯示信息或表示GUI中的其他組件下面分析一個(gè)使用了框架、面板和標(biāo)簽的例子SeeAuthority.java該程序不是交互式程序,但可以移動(dòng)位置或縮放框架大小43布局管理器每個(gè)容器都由稱為布局管理器(layoutmanager)的對(duì)象進(jìn)行管理布局管理器負(fù)責(zé)容器內(nèi)的組件如何部署位置當(dāng)用戶界面有重要事件發(fā)生時(shí),系統(tǒng)將與布局管理器協(xié)商新的布局位置除非指定了排列位置,否則面板中的組件總是試圖按行順序排列44嵌套的面板可以對(duì)面板進(jìn)行嵌套,建立一個(gè)復(fù)雜的組件容器層次結(jié)構(gòu)復(fù)雜的容器層次結(jié)構(gòu)可以滿足所需的可視化效果NestedPanels
例子創(chuàng)建兩個(gè)子面板,每個(gè)面板上面有一個(gè)標(biāo)簽,兩個(gè)子面板都在另一個(gè)面板上面,然后在將該面板加入框架的內(nèi)容窗格SeeNestedPanels.java
45大綱對(duì)象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標(biāo)簽組件和圖像
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電影螞蟻主題課程設(shè)計(jì)
- 小古文趣味講解課程設(shè)計(jì)
- 硬件課程設(shè)計(jì) 交通燈
- 線上競(jìng)技健美操課程設(shè)計(jì)
- 畫室大廳布置課程設(shè)計(jì)
- 2025河南省安全員-B證考試題庫(kù)及答案
- 粘土做賽車課程設(shè)計(jì)
- 經(jīng)濟(jì)學(xué)課程設(shè)計(jì)工程
- 2025吉林省建筑安全員《C證》考試題庫(kù)及答案
- 程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)
- 2024-2025學(xué)年人教版八年級(jí)上冊(cè)地理期末測(cè)試卷(二)(含答案)
- 80、沈陽(yáng)桃仙機(jī)場(chǎng)二平滑工程冬期施工方案
- 一年級(jí)數(shù)學(xué)練習(xí)題-20以內(nèi)加減法口算題(4000道)直接打印版
- GB/T 29468-2024潔凈室及相關(guān)受控環(huán)境圍護(hù)結(jié)構(gòu)夾芯板
- 2024年度房屋裝修工程合同
- 2025年中國(guó)細(xì)胞與基因治療行業(yè)深度分析、投資前景、趨勢(shì)預(yù)測(cè)報(bào)告(智研咨詢)
- 深圳大學(xué)《射頻識(shí)別原理與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 愛勞動(dòng)課件教學(xué)課件
- 云南省高中信息技術(shù)學(xué)業(yè)水平考試知識(shí)點(diǎn)復(fù)習(xí)
- 綜合評(píng)分法評(píng)分細(xì)則
- 化妝品銷售購(gòu)銷合同
評(píng)論
0/150
提交評(píng)論