标签:
class Point{
private Object x ; // 表示X坐标
private Object y ; // 表示Y坐标
public void setX(Object x){
this.x = x ;
}
public void setY(Object y){
this.y = y ;
}
public Object getX(){
return this.x ;
}
public Object getY(){
return this.y ;
}
};
public class GenericsDemo01{
public static void main(String args[]){
Point p = new Point() ; // 声明一个Point的对象
p.setX(10) ; // 利用自动装箱操作:int --> Integer --> Object
p.setY(20) ; // 利用自动装箱操作:int --> Integer --> Object
int x = (Integer)p.getX() ; // 取出数据先变为Integer,之后自动拆箱
int y = (Integer)p.getY() ; // 取出数据先变为Integer,之后自动拆箱
System.out.println("整数表示,X坐标为:" + x) ;
System.out.println("整数表示,Y坐标为:" + y) ;
}
};class Point{
private Object x ; // 表示X坐标
private Object y ; // 表示Y坐标
public void setX(Object x){
this.x = x ;
}
public void setY(Object y){
this.y = y ;
}
public Object getX(){
return this.x ;
}
public Object getY(){
return this.y ;
}
};
public class GenericsDemo02{
public static void main(String args[]){
Point p = new Point() ; // 声明一个Point的对象
p.setX(10.5f) ; // 利用自动装箱操作:float --> Float --> Object
p.setY(20.6f) ; // 利用自动装箱操作:float --> Float --> Object
float x = (Float)p.getX() ; // 取出数据先变为Float,之后自动拆箱
float y = (Float)p.getY() ; // 取出数据先变为Float,之后自动拆箱
System.out.println("小数表示,X坐标为:" + x) ;
System.out.println("小数表示,Y坐标为:" + y) ;
}
};class Point{
private Object x ; // 表示X坐标
private Object y ; // 表示Y坐标
public void setX(Object x){
this.x = x ;
}
public void setY(Object y){
this.y = y ;
}
public Object getX(){
return this.x ;
}
public Object getY(){
return this.y ;
}
};
public class GenericsDemo03{
public static void main(String args[]){
Point p = new Point() ; // 声明一个Point的对象
p.setX("东经180度") ; // String --> Object
p.setY("北纬210度") ; // String --> Object
String x = (String)p.getX() ; // 取出数据先变为String,之后自动拆箱
String y = (String)p.getY() ; // 取出数据先变为String,之后自动拆箱
System.out.println("字符串表示,X坐标为:" + x) ;
System.out.println("字符串表示,Y坐标为:" + y) ;
}
};class Point{
private Object x ; // 表示X坐标
private Object y ; // 表示Y坐标
public void setX(Object x){
this.x = x ;
}
public void setY(Object y){
this.y = y ;
}
public Object getX(){
return this.x ;
}
public Object getY(){
return this.y ;
}
};
public class GenericsDemo04{
public static void main(String args[]){
Point p = new Point() ; // 声明一个Point的对象
p.setX(10) ; // 利用自动装箱操作:int --> Integer --> Object
p.setY("北纬210度") ; // String --> Object
int x = (Integer)p.getX() ; // 取出数据先变为Integer,之后自动拆箱
int y = (Integer)p.getY() ; // 取出数据先变为Integer,之后自动拆箱
System.out.println("整数表示,X坐标为:" + x) ;
System.out.println("整数表示,Y坐标为:" + y) ;
}
};class Point<T>{ // 此处可以随便写标识符号,T是type的简称
private T var ; // var的类型由T指定,即:由外部指定
public T getVar(){ // 返回值的类型由外部决定
return var ;
}
public void setVar(T var){ // 设置的类型也由外部决定
this.var = var ;
}
};class Point<T>{ // 此处可以随便写标识符号,T是type的简称
private T var ; // var的类型由T指定,即:由外部指定
public T getVar(){ // 返回值的类型由外部决定
return var ;
}
public void setVar(T var){ // 设置的类型也由外部决定
this.var = var ;
}
};
public class GenericsDemo06{
public static void main(String args[]){
Point<String> p = new Point<String>() ; // 里面的var类型为String类型
p.setVar("MLDN") ; // 设置字符串
System.out.println(p.getVar().length()) ; // 取得字符串的长度
}
};class Point<T>{ // 此处可以随便写标识符号,T是type的简称
private T var ; // var的类型由T指定,即:由外部指定
public T getVar(){ // 返回值的类型由外部决定
return var ;
}
public void setVar(T var){ // 设置的类型也由外部决定
this.var = var ;
}
};
public class GenericsDemo07{
public static void main(String args[]){
Point<Integer> p = new Point<Integer>() ; // 里面的var类型为String类型
p.setVar("MLDN") ; // 设置字符串
}
};class Point<T>{
private T x ; // 表示X坐标
private T y ; // 表示Y坐标
public void setX(T x){
this.x = x ;
}
public void setY(T y){
this.y = y ;
}
public T getX(){
return this.x ;
}
public T getY(){
return this.y ;
}
};
public class GenericsPoint{
public static void main(String args[]){
Point<Integer> p = new Point<Integer>() ;
p.setX(10) ; // 利用自动装箱操作:int --> Integer
p.setY(20) ; // 利用自动装箱操作:int --> Integer
int x = p.getX() ; // 自动拆箱
int y = p.getY() ; // 自动拆箱
System.out.println("整数表示,X坐标为:" + x) ;
System.out.println("整数表示,Y坐标为:" + y) ;
}
};在这样程序里,减少类类型转换的操作代码,而且更加安全,如果设置的内容不是数字,则在编译的时候就会出现错误,如下所示:class Point<T>{
private T x ; // 表示X坐标
private T y ; // 表示Y坐标
public void setX(T x){
this.x = x ;
}
public void setY(T y){
this.y = y ;
}
public T getX(){
return this.x ;
}
public T getY(){
return this.y ;
}
};
public class GenericsPoint{
public static void main(String args[]){
Point<Integer> p = new Point<Integer>() ;
p.setX(10) ; // 利用自动装箱操作:int --> Integer
p.setY("北纬210度") ; // 利用自动装箱操作:int --> Integer
int x = p.getX() ; // 自动拆箱
int y = p.getY() ; // 自动拆箱
System.out.println("整数表示,X坐标为:" + x) ;
System.out.println("整数表示,Y坐标为:" + y) ;
}
};class Point<T>{ // 此处可以随便写标识符号,T是type的简称
private T var ; // var的类型由T指定,即:由外部指定
public Point(T var){ // 通过构造方法设置内容
this.var = var ;
}
public T getVar(){ // 返回值的类型由外部决定
return var ;
}
public void setVar(T var){ // 设置的类型也由外部决定
this.var = var ;
}
};
public class GenericsDemo08{
public static void main(String args[]){
Point<String> p = new Point<String>("liuxun") ; // 里面的var类型为String类型
System.out.println("内容:" + p.getVar()) ;
}
};class Notepad<K,V>{ // 此处指定了两个泛型类型
private K key ; // 此变量的类型由外部决定
private V value ; // 此变量的类型由外部决定
public K getKey(){
return this.key ;
}
public V getValue(){
return this.value ;
}
public void setKey(K key){
this.key = key ;
}
public void setValue(V value){
this.value = value ;
}
};
public class GenericsDemo09{
public static void main(String args[]){
Notepad<String,Integer> t = null ; // 定义两个泛型类型的对象
t = new Notepad<String,Integer>() ; // 里面的key为String,value为Integer
t.setKey("刘勋") ; // 设置第一个内容
t.setValue(22) ; // 设置第二个内容
System.out.print("姓名;" + t.getKey()) ; // 取得信息
System.out.print(",年龄;" + t.getValue()) ; // 取得信息
}
};class Info<T>{
private T var ;
public T getVar(){
return this.var ;
}
public void setVar(T var){
this.var = var ;
}
public String toString(){ // 覆写Object类中的toString()方法
return this.var.toString() ;
}
};
public class GenericsDemo10{
public static void main(String args[]){
Info i = new Info() ; // 警告,没有指定泛型类型
i.setVar("MLDN") ; // 设置字符串
System.out.println("内容:" + i.getVar()) ;
}
};class Info<T>{
private T var ;
public T getVar(){
return this.var ;
}
public void setVar(T var){
this.var = var ;
}
public String toString(){ // 覆写Object类中的toString()方法
return this.var.toString() ;
}
};
public class GenericsDemo11{
public static void main(String args[]){
Info<Object> i = new Info<Object>() ; // 指定Object为泛型类型
i.setVar("MLDN") ; // 设置字符串
System.out.println("内容:" + i.getVar()) ;
}
};
标签:
原文地址:http://blog.csdn.net/u013087513/article/details/51713721