版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第5章 貨物管理,項(xiàng)目-貨物管理,項(xiàng)目目標(biāo):通過項(xiàng)目的實(shí)施了解變量作用域的概念;掌握包的定義及其包中類的引用;掌握this關(guān)鍵字的含義及其使用場合;熟練使用各種訪問控制修飾符及static修飾符;認(rèn)識靜態(tài)初始化塊;明確String與StringBuffer的區(qū)別與聯(lián)系;熟練掌握ArrayList類的常用成員方法 項(xiàng)目任務(wù):該項(xiàng)目要編程實(shí)現(xiàn)一個貨物管理的簡單功能。能描述貨物的編號、名稱,能顯示某特定貨物的相關(guān)信息。能描述貨物的類別以,顯示該類別的所有貨物信息以及為該類別添加一個貨物。能根據(jù)貨物名稱查找貨物,將某個貨物或某些貨物添加到它所隸屬的類別里,能顯示該系統(tǒng)中所有的貨物類別及其該類別中的所有
2、貨物信息。 GoodsManageTest.java,項(xiàng)目分析,根據(jù)項(xiàng)目任務(wù)描述的項(xiàng)目功能需求,本項(xiàng)目需要定義四個類,具體可以按照以下過程實(shí)現(xiàn): (1) 貨物類,描述貨物的名稱,編號(要求能夠自動生成無需外界賦值實(shí)現(xiàn))。這個類有帶參的構(gòu)造方法和無參的構(gòu)造方法,同時還要提供一個顯示該貨物所有信息的方法。 (2) 貨物類別類,描述該類貨物的類別名稱,該類貨物的成員編號。除了構(gòu)造方法,訪問器方法,顯示該類所有信息的方法外還要定義一個為該類添加成員的方法。 (3) 貨物管理類。該類可以按類別存放管理的所有貨物信息,為方便使用應(yīng)提供如下功能: 可以根據(jù)貨物名稱進(jìn)行查找如果找到返回該類別對象的一個引用否則
3、返回空; 可以增加一個貨物,首先進(jìn)行查找,如果是此貨物類別已經(jīng)存在則只是在已有的貨物成員中添加該貨物的編號,否則需要創(chuàng)建該貨物所隸屬的貨物類別類對象,并將該對象添加到貨物列表里; 可以增加一組貨物; 顯示此系統(tǒng)中的所有貨物類別的詳細(xì)信息。 (4) 貨物管理測試類,測試貨物管理類的各項(xiàng)功能。,技術(shù)準(zhǔn)備,構(gòu)造方法的重載 變量的作用域 this關(guān)鍵字 包 訪問控制修飾符 static修飾符 String和StringBuffer ArrayList,構(gòu)造方法的重載,構(gòu)造方法的重載與方法的重載相同 示例:Student.java,變量的作用域,屬性: 類的作用域,有默認(rèn)值 局部變量(變量): 塊的作用
4、域,沒有默認(rèn)值 示例:Scope.java Scope1.java,變量的初始化,當(dāng)一個對象創(chuàng)建時,會對其中各種類型的屬性(成員變量)進(jìn)行默認(rèn)的初始化。 在一個方法內(nèi)部定義的變量必須自行進(jìn)行初始化賦值,關(guān)鍵字this,示例:RectangleTest3 .java this代表類的當(dāng)前對象 利用“this.”可以調(diào)用當(dāng)前對象的成員 this可以實(shí)現(xiàn)構(gòu)造方法的調(diào)用 利用this(參數(shù))可以調(diào)用構(gòu)造方法 必須寫在構(gòu)造方法的第一條,包,Java中使用包來管理類 定義包(將類放入包中) package 包名 例如:package java.myPackage; 示例:A.java 注意,package
5、必須寫在程序的第一條,包,使用其他包中的類 Import 包名.類名 例:import myPackage.myClass; 示例:Package_Test.java 注意:只能引入其他包中的public類,包,注意: package必須是第一條語句 只能使用其他包中的public類 沒有定義包名的類屬于無名包,不能被有名包引用 如果一個程序中使用兩個包中的類同名,在使用類名前加上包名前綴,練習(xí),定義一個類A,放到pack1包中; 定義一個類B,放到pack2包中; 在類B中定義main方法,在main方法中創(chuàng)建類A的對象。 觀察:兩個類的字節(jié)碼文件的位置,訪問控制修飾符,類的訪問控制修飾符
6、public:包內(nèi)外都可訪問 默認(rèn):只能包內(nèi)訪問 示例:AA.java AATest.java,訪問控制修飾符,類成員的訪問控制修飾符 public:包內(nèi)包外可訪問 protected:包內(nèi)包外子類可訪問 默認(rèn):包內(nèi)可訪問 private:類內(nèi)可訪問,訪問控制修飾符,建議 方法和構(gòu)造方法一般為public 屬性一般為private 對私有屬性的訪問通過訪問器方法完成(set方法和get方法),static,靜態(tài)屬性 用static修飾的屬性,也稱為類屬性 用于描述一類對象共享的屬性 比如:員工的最低工資,學(xué)生的學(xué)校名稱等等 可通過類名直接調(diào)用,也可通過對象調(diào)用 示例: EmpTest .jav
7、a,static,靜態(tài)方法 用static修飾的方法,也叫類方法 靜態(tài)方法中不能訪問非靜態(tài)成員 如果一個方法中沒有訪問非靜態(tài)成員,則這個方法可以聲明成靜態(tài)的,要點(diǎn),創(chuàng)建 靜態(tài)屬性和靜態(tài)方法在第一次使用類的時候創(chuàng)建,所有類的對象共享 非靜態(tài)屬性和非靜態(tài)方法在創(chuàng)建對象的時候創(chuàng)建,每個對象之間獨(dú)立,要點(diǎn),使用 在類外,靜態(tài)屬性和靜態(tài)方法可以通過類名直接調(diào)用,也可以通過對象名調(diào)用。 在類外,非靜態(tài)屬性和非靜態(tài)方法只能通過對象名調(diào)用。,要點(diǎn),限制 靜態(tài)方法中不能直接訪問本類的非靜態(tài)成員。 構(gòu)造方法不能是靜態(tài)的。,要點(diǎn),建議 描述對象共享的屬性,一般聲明成靜態(tài)的。 如果方法中沒有直接訪問本類的非靜態(tài)成員,
8、一般可以聲明成靜態(tài)的。,靜態(tài)初始化器,構(gòu)造方法用于初始化對象,主要是對非靜態(tài)屬性初始化。 靜態(tài)初始化器用于類的初始化,主要是對靜態(tài)屬性的初始化。 Student.java,靜態(tài)初始化器,語法 static 初始化語句(組); ,要點(diǎn),靜態(tài)初始化器用于對類的初始化,構(gòu)造方法用于對象的初始化 靜態(tài)初始化器在第一次使用類的時候調(diào)用,構(gòu)造方法是用new創(chuàng)建對象時調(diào)用,String類,Java中使用String類的對象表示字符串 例如: String s1 = “ this is a string”; String s2 = new String(“another”); String s3 = s1+s
9、2;,String類中常用方法,boolean equals(Object o) 判斷該字符串是否與目標(biāo)字符串相等 boolean equalsIgnoreCase(Object o) 不區(qū)分大小寫比較是否相等 int compareTo(String s) 按照字典順序比較當(dāng)前字符串與目標(biāo)字符串 注意:字符串的比較不能用“=”比較,String類中常用方法,int length() 獲取字符串的長度 char charAt(int index) 獲取指定位置的字符,index從0開始 String substring(int from,int end) String substring(in
10、t from) 獲取字符串的子串,String類中常用方法,int indexOf(char c) int indexOf(char c,int from) int indexOf(String s) int indexOf(String s,int from) 查找指定字符或者字符串的位置,如果未找到返回1,String類中常用方法,String trim() boolean endsWith(String s) boolean startsWith(String s) String replace(char old,char new) String replaceFirst(String
11、o,String n) String replaceAll(String o,String n) String split(String regex) 示例: StringTest .java,StringBuffer,String構(gòu)造的字符串一旦創(chuàng)建不能修改 StringBuffer的內(nèi)容可以修改 append方法 insert方法 delete方法 deleteCharAt方法,String與基本數(shù)據(jù)類型之間的轉(zhuǎn)換,字符串其他數(shù)據(jù)類型 int i1 = Integer.parseInt(“111”); int i2 = new Integer(“111”).intValue(); int
12、i3 = Integer.valueOf(“111”); int i4 = new Integer(“111”); 其他數(shù)據(jù)類型字符串 String out1 = new Integer(100).toString(); String out2 = String.valueOf(100) ; String out3 = “”+100;,ArrayList,該類的構(gòu)造方法有3種: ArrayList(),構(gòu)造一個初始化為10的空的鏈表; ArrayList(Collection c),使用1個已經(jīng)存在的集合構(gòu)造一個鏈表,集合中的元素在新的鏈表中的順序由集合的iterator方法決定。 Array
13、List(int initialCapacity),構(gòu)造一個由參數(shù)指定初始化空間大小的的鏈表。,向集合中添加對象的方法 public void add(int index,Object o),第一個參數(shù)表示要添加的元素的位置,從0開始。 public boolean addAll(int index,Collection c),第一個參數(shù)表示位置,如果不指定位置,默認(rèn)在最后添加。 public boolean add(Object o),在鏈表的最后添加參數(shù)指定的元素。 public boolean addAll(Collection c),在鏈表最后添加參數(shù)指定的所有元素,刪除特定的元素 p
14、ublic boolean remove(Object o),刪除指定的某個元素。 public boolean removeAll(Collection c),刪除指定的多個元素。 public void clear(),刪除所有的元素。 public boolean retainAll(Collection c),只保留指定集合中存在的元素,其他的都刪除,相當(dāng)于取兩個集合的交集。 public Object remove(int index),參數(shù)用于指定要刪除的元素的位置。,獲取某個元素或者獲取某些元素 public Object get(int index),獲取指定位置的元素。 pu
15、blic List subList(int fromIndex,int toIndex),獲取從fromIndex到toIndex這些元素,包括fromIndex,不包括toIndex。,查找某個元 素 public int indexOf(Object o),查找元素在集合中第一次出現(xiàn)的位置,并返回這個位置,如果返回值為-1,表示沒有找到這個元素。 public int lastIndexOf(Object o),查找元素在集合中最后一次出現(xiàn)的位置。 public boolean isEmpty,用于判斷集合是否是空的。 public boolean contains(Object o),判
16、斷是否包含指定的元素。 public boolean containsAll(Collection c),判斷是否包含指定的多個元素。 public int size(),用于獲取集合中元素的個數(shù)。,修改元素的方法 public Object set(int index,Object o),用第二個參數(shù)指定的元素替換第一個參數(shù)指定位置上的元素。,轉(zhuǎn)換成其它對象 public ListIterator listIterator(),把所有元素都轉(zhuǎn)換成有順序的迭代器。 public ListIterator listIterator(int index),從index開始的所有元素進(jìn)行轉(zhuǎn)換。 pu
17、blic Iterator iterator(),轉(zhuǎn)換成迭代器,方便集合中元素的遍歷。 public Object toArray(),轉(zhuǎn)換成集合,也是方便集合中元素的遍歷。,ArrayList的遍歷 可以采用下面的3種方式進(jìn)行遍歷。 方法一: for(int i=0;i i = list1.iterator(); while(i.hasNext() String temp = i.next(); System.out.println(temp); ,項(xiàng)目學(xué)做,根據(jù)項(xiàng)目任務(wù)的描述要求,有四個類定義,為了使用方便將它們統(tǒng)一定義在包c(diǎn)lassandobj中。如果四個類定義都放在一個源文件里,則只有
18、類GoodsManageTest可以被public修飾且源文件的名字亦應(yīng)定義為GoodsManageTest.java。為了清晰起見,我們將四個類分別放到四個源文件中,則此四個類均可被public修飾,且源文件名字和類名一致即可。 (1) 貨物類根據(jù)定義應(yīng)該有兩個私有屬性:字符串類型的貨物名稱,字符串類型的貨物編號。但由于要求編號能夠自動生成無需外界賦值實(shí)現(xiàn),實(shí)質(zhì)是暗示還需要一個靜態(tài)的整型屬性表示當(dāng)前系統(tǒng)共有的貨物數(shù)目,而每個貨物的具體編號是在已有的貨物數(shù)目基礎(chǔ)上加1實(shí)現(xiàn)的。對于私有屬性因其不便于被外界訪問,需要為每個私有屬性提供一對共有的訪問器方法。顯示該貨物的所有信息,就是以字符串的形式返回各個屬性值,(2) 對于貨物類別類,需要提供一種存儲結(jié)構(gòu)來存放該類別的所有貨物的編號,考慮到其成員數(shù)目不確定且動態(tài)變化,因此可以采用ArrayList這種動態(tài)數(shù)組作為存儲結(jié)構(gòu),由于其中存儲的永遠(yuǎn)是Goods對象,在定義時可以為其加上泛型的限定。添加貨物成員的方法,本質(zhì)就是在ArrayList對象中追加一個Goods元素。顯示該類所有信息時可以使用String類的字符串連接方式實(shí)現(xiàn),但String通常用來表示字符串常量,不適用于頻繁變化的情況,因此在進(jìn)行
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年電氣工程師考試寶典電氣安全與節(jié)能知識模擬題
- 公司協(xié)調(diào)制度
- 職業(yè)性眼病防控中的社區(qū)參與模式
- 2026年計(jì)算機(jī)操作系統(tǒng)原理與應(yīng)用試題集
- 職業(yè)性皮膚病的職業(yè)健康學(xué)術(shù)交流
- 2026年P(guān)ython編程語言入門與實(shí)戰(zhàn)題目
- 跨境電商退換貨處理協(xié)議(2025年退換貨)
- 2026年導(dǎo)游資格考試旅游文化與歷史知識題庫
- 保護(hù)生態(tài)環(huán)境必須靠制度
- 職業(yè)性皮炎患者皮膚微生態(tài)保護(hù)
- 采購違規(guī)管理辦法
- DB32/T 3392-2018灌溉水系數(shù)應(yīng)用技術(shù)規(guī)范
- 股東清算解散協(xié)議書
- 產(chǎn)后腰背疼康復(fù)治療
- 2025年商業(yè)物業(yè)抵押貸款合同范本
- 2024用電信息采集系統(tǒng)技術(shù)規(guī)范第1部分:專變采集終端
- 浙江省杭州市2024年中考語文試卷(含答案)
- 四川省綿陽市2020年中考數(shù)學(xué)試題(含解析)
- 期末達(dá)標(biāo)測試卷(試題)-2024-2025學(xué)年人教PEP版英語四年級上冊
- DLT 1563-2016 中壓配電網(wǎng)可靠性評估導(dǎo)則
- HJ 377-2019 化學(xué)需氧量(CODCr)水質(zhì)在線自動監(jiān)測儀技術(shù)要求及檢測方法
評論
0/150
提交評論