需求:先需編寫乙個程式,用棧(stack)進行進棧和出棧操作,並對棧中的元素進行運算。
方案一:假設元素為int型別,則可使用**:
code:
class stack
public
void push(int x)
public
int pop()
}
客戶**:
code:
class test
}
然而,現在需求發生變化。客戶要求使用double型別,甚至還要支援string!這樣考慮用到弱型別object。
修改**如下:
code:
class stack
public
void push(object x)
public
object pop()
}
// 客戶**
code:
class test
執行結果:
這樣的解決方法看似可以,但是對型別的不斷封箱和拆箱會降低程式效能,而且很容易寫出能通過編譯但是不能執行的**!
這個時候 ,泛型該出場了!
泛型使用**如下:
code:
class stack
public
void push(t x)
public t pop()
}
class test
}
輸出結果 :
泛型 什麼是泛型
泛型 即通過引數化型別來實現在同乙份 上操作多種資料型別。泛型程式設計是一種程式設計正規化,它利用 引數化型別 將型別抽象化,從而實現更為靈活的復用。c 泛型的作用概述 c 泛型賦予了 更強的型別安全,更好的復用,更高的效率,更清晰的約束。在乙個方法中,乙個變數的值是可以作為引數,但其實這個變數的型...
關於泛型,什麼是泛型,如何理解泛型
泛型是jdk5中引入的特性,它提供了編譯時型別安全檢測機制,該機制允許在編譯時檢測到非法的型別,就不至於在執行時出現轉換異常,它的本質是引數化型別 即以任何型別 t 作為引數,在使用時可以傳入型別t的具體值 t 也就是將型別由原來的具體型別用引數t表示 即型別引數化 然後在使用 呼叫時傳入具體的型別...
什麼是泛型
分類 泛型 c 應用 2009 02 25 10 04 550人閱讀收藏 舉報 前言 net 2.0中泛型的出現是乙個令人激動的特徵。但是,什麼是泛型?你需要它們嗎?你會在自己的應用軟體中使用它們?在本文中,我們將回答這些問題並細緻地分析泛型的使用,能力及其侷限性。型別安全 net中的許多語言如c ...