Java图书管理系统练习程序(四)
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
Java圖書管理系統(tǒng)練習(xí)程序(四)
本部分主要介紹List的基本操作與Java中泛型的使用。
一、Java中泛型的使用
泛型,即“參數(shù)化類型”。一提到參數(shù),最熟悉的就是定義方法時有形參,然后調(diào)用此方法時傳遞實參。那么參數(shù)化類型怎么理解呢?顧名思義,就是將類型由原來的具體的類型參數(shù)化,類似于方法中的變量參數(shù),此時類型也定義成參數(shù)形式(可稱之為類型參數(shù)),然后在使用/調(diào)用時傳入具體的類型(類型實參)。
泛型的本質(zhì)是為了參數(shù)化類型(在不創(chuàng)建新的類型的情況下,通過泛型指定的不同類型來控制形參具體限制的類型)。也就是說在泛型使用過程中,操作的數(shù)據(jù)類型被指定為一個參數(shù),這種參數(shù)可以用在類、接口和方法中,分別被稱為泛型類、泛型接口、泛型方法。
例1.編寫一個類,將任意一個整數(shù)(int)按下面格式輸出,“我是一個數(shù):100”。
那么這個類很好寫,如下
public class OutNumber {private int n;public OutNumber(int n){this.n=n;}public void printN(){System.out.println("我是一個數(shù) :"+n);} }那么接下來,我們要再寫一個類,將一個字符串(String)也要按以下的格式輸出,那么這個類也很簡單,代碼如下:
public class OutSting {private String n;public OutSting(String n){this.n=n;}public void printN(){System.out.println("我是一個數(shù):"+n);} }仔細(xì)分析以上兩個類,我們發(fā)現(xiàn),這兩個類對數(shù)據(jù)處理的方法是相同的,只是處理的類型是不同的。如果我們可以寫一個類,定義類時,并不指明數(shù)據(jù)的類型,在使用的時候再指明類型。那么我們可以采用以下的方式。
public class OutNumber<E> {private E n;public OutNumber(E n){this.n=n;}public void printN(){System.out.println("我是一個數(shù):"+n);} } public class Demo1 {public static void main(String[] args) {OutNumber<Integer> o1=new OutNumber<>(10);o1.printN();OutNumber<String> o12=new OutNumber<>("字符串 ");o12.printN();} }這就是泛型的一種使用,稱為泛型類
1.泛型類
class 類名稱 <泛型標(biāo)識>{
? ? private 泛型標(biāo)識 成員變量名;
......
}
注意:
????????泛型的類型參數(shù)只能是類類型(包括自定義類),不能是簡單類型(比如int與Integer)
????? ? 傳入的實參類型需與泛型的類型參數(shù)類型相同,
如OutNumber<Integer> o1=new OutNumber<>(10);
2.泛型接口
其使用方法與泛型類基本相同。
在本練習(xí)程序中,主要使用了泛型類和泛型接口。
二、List的基本操作
在本練習(xí)程序中,如果采用數(shù)組存放若干個用戶的信息,在聲明數(shù)組時,就必須同時聲明數(shù)組的長度,即我們的程序只能存儲多少個用戶,如果我們聲明的過大,會造成內(nèi)存的浪費,如果我們聲明的數(shù)組太小,即長度過短,會造成數(shù)據(jù)溢出的錯誤。
而List可以解決這個問題。它的大小是動態(tài)可改變的,其存儲的數(shù)據(jù)類型也是多樣的。例如以下代碼
List<Student> lists=new ArrayList<>();在以上代碼中,List是一個接口,ArrayList是該接口的一個實現(xiàn)類。通過以上代碼,我們即創(chuàng)建一個存儲Student對象的集合。
1.向集合中添加、刪除元素
Student student=new Student(1,"張三豐","武當(dāng)山"); lists.add(student);//將student對象添加到集合中 lists.remove(student);//將student對象從集合中移除2.判斷List中是否包含某個元素
lists.contains(student)3.根據(jù)元素在集合中的索引值取得元素
Student stu=lists.get(0);4.取得對象在集合中的索引值
lists.indexOf(student);5.判斷集合是否為空
lists.isEmpty();以上是在本練習(xí)程序中,用到的有關(guān)List集合的相關(guān)內(nèi)容。其它的方法,可以參考Java API文檔。
轉(zhuǎn)載于:https://my.oschina.net/u/3537796/blog/2413986
總結(jié)
以上是生活随笔為你收集整理的Java图书管理系统练习程序(四)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买二手ipad如何验货
- 下一篇: Systemd-CentOS7系统服务介