Java程序設計教程-chapter3_第1頁
Java程序設計教程-chapter3_第2頁
Java程序設計教程-chapter3_第3頁
Java程序設計教程-chapter3_第4頁
Java程序設計教程-chapter3_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java程序設計教程

SixthEditionby

Lewis&LoftusChapter3:

使用類和對象使用類和對象使用類和對象所提供的服務是面向?qū)ο筌浖幕緝?nèi)容,并可為編寫用戶自己的類奠定基礎(chǔ)本章目標:對象的創(chuàng)建和引用String

類Java標準類庫Random

類和Math類格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像2大綱對象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像3建立對象變量名代表一個基本類型值或一個對象對象變量也必須聲明,定義對象的類可視為對象的類型Stringtitle;上述聲明后的變量沒有存放任何數(shù)據(jù)一個對象變量不能保存對象本身,而是保存了該對象的地址,即對象引用變量4建立對象一般通過new

運算符實例化一個對象title=newString("JavaSoftwareSolutions");String構(gòu)造方法,初始化新對象創(chuàng)建一個對象也叫實例化一個對象是一個特定類的實例5調(diào)用方法對象初始化后,可用“.”運算符來引用對象的方法count=title.length()方法可能會返回調(diào)用值,該值可用于賦值表達式或運算表達式方法的調(diào)用可想象為要求對象完成一個服務6引用基本變量為它的實際值,對象變量為指向?qū)ο蟠鎯卧闹羔樢话悴恢苯佑脤ο蟮膶嶋H地址表示對象,而是采用圖形化方法表示對象"SteveJobs"name1num1387賦值賦值操作是取得一份數(shù)值后將其存儲在變量空間基本數(shù)據(jù)類型:num138num296Before:num2=num1;num138num238After:8引用賦值對于對象引用,賦值操作為拷貝地址:name2=name1;name1name2Before:"SteveJobs""SteveWozniak"name1name2After:"SteveJobs"9別名兩個或以上的引用變量指向同一個對象時,稱它們?yōu)楸舜说膭e名一個對象可以被多個引用變量所引用別名很有用,但要小心使用當利用一個引用改變其所指的對象時,同時也使作為別名的所有引用指向的對象發(fā)生了改變10垃圾回收當一個對象的最后一個引用丟失時,該對象不能再被程序所使用此時該對象沒有任何用處,也叫“垃圾”Java自動執(zhí)行垃圾對象回收,將其所占內(nèi)存空間釋放給系統(tǒng)其他編程語言的程序員必須為垃圾對象空間回收負責11大綱對象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像12String類String類雖然不是基本數(shù)據(jù)類型,但使用非常普遍,因而不需要采用new

操作符去創(chuàng)建String

對象title="JavaSoftwareSolutions";這種特殊的語法只對String類有效每一個string文本(由雙引號封裝)代表一個

String對象13String方法String

對象一旦創(chuàng)建,內(nèi)容和長度就不能再改變因而稱String

類的對象是不可變的不過String類提供了幾個方法以返回新的String對象,這些新對象是對原字符串值修改的結(jié)果14String索引有時有必要引用字符串里面的特定字符可以通過字符索引的概念來處理字符串字符串中第一個字符的索引為0,下一個字符索引為1,依次類推字符串“Hello”,字符‘H’

在索引0,字符

‘o’

在索引4SeeStringMutation.java

15大綱對象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像16類庫類庫由一組支持程序開發(fā)的類組成Java標準類庫可以存在于Java的任何一種開發(fā)環(huán)境中類庫由幾組相關(guān)的類簇構(gòu)成(System,Scanner,String)除了標準類庫,還可以調(diào)用第三方類庫17包Java標準類庫的類還被劃分為包,每個類屬于一個具體的包Java語言標準類庫的包:包名java.utiljavax.xml.parsers功能通用功能創(chuàng)建applets繪圖和建立圖形界面擴展圖形功能網(wǎng)絡通信實用功能XML文檔處理18Import聲明當需要在程序中使用類庫的類時,每次引用時必須給出類的全名java.util.Scanner或者可以預先import

需要的類,然后就可以直接使用類名引用importjava.util.Scanner;為了使用指定包中的任何類,可用*通配符importjava.util.*;19Import聲明每當編寫一個Java程序時,java.lang

包中的類將自動成為可用類相當于所有程序都包含如下語句:importjava.lang.*;這就是為什么我們能夠在之前的java程序例子里直接使用System

或String

類Scanner類為java.util包的一部分,因而使用前必須先import20Random類Random

類存在于java.util包Random類模擬了偽隨機數(shù)發(fā)生器Random

對象基于一個種子值,在執(zhí)行一系列復雜計算后,將會產(chǎn)生隨機數(shù)SeeRandomNumbers.java

21Math類Math類存在于java.lang

包Math類提供了大量用于計算的基本數(shù)學函數(shù)包括:絕對值平方根冪三角函數(shù)22Math類Math

類的所有方法都是靜態(tài)方法靜態(tài)方法可以直接通過類名調(diào)用–不需要

Math類的對象value=Math.cos(90)+Math.sqrt(delta);SeeQuadratic.java

23大綱對象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像24格式化輸出NumberFormat類和DecimalFormat

類用于格式化信息,使得打印或顯示出的信息格式編排清晰

NumberFormat

類提供了通用的數(shù)據(jù)格式化能力DecimalFormat

類在模版基礎(chǔ)上進行格式化數(shù)據(jù)兩者都屬于java.text包25格式化輸出NumberFormat類為靜態(tài)方法getCurrencyInstance()getPercentInstance()每個formatter對象擁有一個format方法,以特定格式返回信息SeePurchase.java

26格式化輸出DecimalFormat

類可通過不同方法格式化浮點數(shù)例如,可以指定浮點數(shù)只顯示小數(shù)點后三位DecimalFormat類的構(gòu)造器獲取代表模版的字符串后,以該模版格式化數(shù)字SeeCircleStats.java

27大綱對象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像28枚舉型Java提供了一種枚舉型數(shù)據(jù)類型,可用于聲明枚舉型變量枚舉值可以定義為所希望的任何標識符下列聲明語句創(chuàng)建了一個Season枚舉類型enumSeason{winter,spring,summer,fall};枚舉型通過列舉(枚舉)出變量所有可能的取值29枚舉型一旦定義了枚舉類型,就可以用該類型聲明枚舉類型Seasontime;

并且可以通過如下語句賦值time=Season.fall;枚舉值通過枚舉類型名訪問枚舉類型是類型安全的,保證取值有效性30序數(shù)值枚舉型的每個枚舉值在Java內(nèi)部保存為代表枚舉值序數(shù)的整型數(shù)第一個枚舉值的序數(shù)值為0,第二個枚舉值的序數(shù)為1,依次類推程序不能將一個數(shù)值賦給一個枚舉型變量31枚舉類型一個枚舉類型是一種特殊的類,枚舉型變量是對象變量ordinal

方法返回與一個枚舉型值相關(guān)聯(lián)的序數(shù)值name

方法返回枚舉值名SeeIceCream.java

32大綱對象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像33包裝類java.lang

包含有包裝(wrapper)

類,代表一種具體的基本數(shù)據(jù)類型基本類型包裝類byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBooleanvoidVoid34包裝類Integer類創(chuàng)建的對象將保存一個int型值 Integerage=newInteger(40);包裝類對象可用作包含其他類型對象的容器35包裝類包裝類提供了管理基本類型對應的靜態(tài)方法例如,Integer

類有一個靜態(tài)方法paseInt,用于將存放在String串中的整型值轉(zhuǎn)換為int型值:num=Integer.parseInt(str);包裝類定義了很有用的靜態(tài)常量例如,Integer類包含MIN_VALUE

和MAX_VALUE

兩個靜態(tài)常量,分別代表int型數(shù)據(jù)的最大值和最小值36自動包裝自動包裝是基本數(shù)據(jù)類型與相應的包裝對象之間的自動轉(zhuǎn)換: Integerobj; intnum=42; obj=num;上述代碼將一個int型值賦給Integer對象引用變量與上述類型轉(zhuǎn)換相反的轉(zhuǎn)換稱為拆除包裝(unboxing),在需要時自動轉(zhuǎn)換37大綱對象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像38組件和容器除了第二章的applet程序,其余我們討論過的程序都是基于文本的它們也叫命令行應用程序,通過簡單的文本提示與用戶交互本節(jié)會探討擁有圖形用戶界面的Java程序圖形組件是具有圖形用戶界面的Java應用程序的基礎(chǔ)39GUI組件一個GUI組件是一個對象,代表一個用于顯示信息或允許用戶以某種方式與程序進行交互的屏幕元素。GUI組件包括標簽、按鈕、單行文本框GUI相關(guān)的類主要定義在java.awt

和javax.swing

包抽象窗口工具包(AbstractWindowingToolkit,

AWT)是JavaGUI的原始版Swing

是后期增加的包,提供的組件比AWT包的組件更加多樣化上述兩個包在創(chuàng)建JavaGUI應用程序時都不可缺少40GUI容器GUI容器是一個保存和組織其他組件的特殊GUI組件框架(frame)是一個容器,用于顯示基于GUI的Java應用程序界面一個框架顯示為具有標題欄的獨立窗口,可以根據(jù)需要用鼠標拖曳著在屏幕上重定位和改變窗口大小面板(panel)也是一個容器,但與框架不同,面板自身不能獨立顯示面板必須加到一個可以顯示它的容器中,面板也不能獨自移動,只能隨這包含該面板的容器移動41GUI容器GUI容器分為兩類:重量級容器和輕量級容器重量級容器由支持程序運行的底層操作系統(tǒng)管理輕量級容器由Java程序自己管理在探討GUI開發(fā)時,這種區(qū)別有時很重要框架是重量級容器,面板則是輕量級容器42標簽標簽(label)組件用于顯示用戶界面的一行文本,也可以顯示一幅圖片標簽最常用于顯示信息或表示GUI中的其他組件下面分析一個使用了框架、面板和標簽的例子SeeAuthority.java該程序不是交互式程序,但可以移動位置或縮放框架大小43布局管理器每個容器都由稱為布局管理器(layoutmanager)的對象進行管理布局管理器負責容器內(nèi)的組件如何部署位置當用戶界面有重要事件發(fā)生時,系統(tǒng)將與布局管理器協(xié)商新的布局位置除非指定了排列位置,否則面板中的組件總是試圖按行順序排列44嵌套的面板可以對面板進行嵌套,建立一個復雜的組件容器層次結(jié)構(gòu)復雜的容器層次結(jié)構(gòu)可以滿足所需的可視化效果NestedPanels

例子創(chuàng)建兩個子面板,每個面板上面有一個標簽,兩個子面板都在另一個面板上面,然后在將該面板加入框架的內(nèi)容窗格SeeNestedPanels.java

45大綱對象的創(chuàng)建和引用String類包格式化輸出枚舉類型包裝類圖形組件和容器標簽組件和圖像

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論