泛型这节课可以多听几遍
泛型常用形式:
比如mazenode中需要stack存储二维数组,puzzle里需要stack存储一维数组,但是mystack的功能都是一样的,所以为了让代码更通用可以设置成 Class MyStack{ }
T是一个未知的类型,称为泛型,只在编译期有效 进行类型安全监测
在运行期 :擦除到Object类型里。即T就是object类型。
用泛型的方法写一个二分查找,为了更熟悉泛型的使用,一定要看
public class Binarysearch_fanxing {
public static <E>void swap(E element[],int index1,int index2){
E temp = element[index1];
element[index1]=element[index2];
element[index2]=temp;
}
public static <T extends Comparable<T>>void Binarysearch(T arr[]){
if(arr==null||arr.length==1){
return;
}
boolean flag;
for(int i=0;i<arr.length;i++){
flag=false;
for(int j=0;j<arr.length-1-i;j++){
if(arr[j].compareTo(arr[j+1])>0){
swap(arr,j,j+1);
}
flag=true;
}
if(!flag){
break;
}
}
}
}
用泛型写的冒泡排序
public class Binarysearch_fanxing {
public static <E>void swap(E element[],int index1,int index2){
E temp = element[index1];
element[index1]=element[index2];
element[index2]=temp;
}
public static <T extends Comparable<T>>void Binarysearch(T arr[]){
if(arr==null||arr.length==1){
return;
}
boolean flag;
for(int i=0;i<arr.length;i++){
flag=false;
for(int j=0;j<arr.length-1-i;j++){
if(arr[j].compareTo(arr[j+1])>0){
swap(arr,j,j+1);
}
flag=true;
}
if(!flag){
break;
}
}
}
}
泛型擦除
抽象类的常用形式
父类的方法子类需要重写 就用抽象方法表述。
然后子类重写 或子类写成抽象类
接口的常用形式
接口和抽象类的区别?
不知道
小知识点:
打印某个类属性,可以到类里面去修改tostring。
抽象类 含有抽象方法。
注意 误区:抽象类必定含有抽象方法这句话是错的。
抽象类一般用在继承当中。
Alt加回车键 小灯泡方法
抽象类不能实例化对象
抽象方法:子类必须实现抽象方法。