泛型是什麼?
今天又聽了一堆名詞....記都記不完,也聽不太懂XDD
只好花時間問Google做功課
進入正題,泛型簡單來說就是用來增加彈性,例如當我們有同一個演算法,可是要處理的參數型別有很多種,就可以透過泛型來設計。
舉例來說List、ArrayList這些都有泛型的設計,所以我們在使用時可以進一步限制他們的型別。如List<String>、ArrayList<Customer>(Customer是自己設計的類別)
接著看泛型的使用,直接先看例子:
class Node<T>{
private T value;
T getValue(){
return value;
}
setValue(T value){
this.value = value;
}
}
當我們在使用此Class時
Node<String> node = new Node<String>();
就會做出下面這個Node
class Node<String>{
private String value;
String getValue(){
return value;
}
setValue(String value){
this.value = value;
}
}
那我們如果是其他的型別
Node<int> node = new Node<int>();
則會做出下面這個Node
class Node<int>{
private int value;
int getValue(){
return value;
}
setValue(int value){
this.value = value;
}
}
上面這個例子就可以看出來Node這個Class用到了泛型,把型別的指定延後,提高類別的彈性。
其實有這些疑問是因為想知道「泛型跟多型的差別在哪?」,但需要先徹底了解泛型是什麼才有辦法去比較,只好留到下一篇再說明了。
只好花時間問Google做功課
進入正題,泛型簡單來說就是用來增加彈性,例如當我們有同一個演算法,可是要處理的參數型別有很多種,就可以透過泛型來設計。
舉例來說List、ArrayList這些都有泛型的設計,所以我們在使用時可以進一步限制他們的型別。如List<String>、ArrayList<Customer>(Customer是自己設計的類別)
接著看泛型的使用,直接先看例子:
class Node<T>{
private T value;
T getValue(){
return value;
}
setValue(T value){
this.value = value;
}
}
當我們在使用此Class時
Node<String> node = new Node<String>();
就會做出下面這個Node
class Node<String>{
private String value;
String getValue(){
return value;
}
setValue(String value){
this.value = value;
}
}
那我們如果是其他的型別
Node<int> node = new Node<int>();
則會做出下面這個Node
class Node<int>{
private int value;
int getValue(){
return value;
}
setValue(int value){
this.value = value;
}
}
上面這個例子就可以看出來Node這個Class用到了泛型,把型別的指定延後,提高類別的彈性。
其實有這些疑問是因為想知道「泛型跟多型的差別在哪?」,但需要先徹底了解泛型是什麼才有辦法去比較,只好留到下一篇再說明了。
留言
張貼留言