第一章补充:泛型
一,泛型类,泛型接口,泛型方法
1.泛型类
public class 类名 <T>
{}:这里的T为随意的大写字母,常用的有E,V,T等;
2.泛型接口
public interface 接口名 <T>
{} : 实现泛型接口要用泛型类。
3.泛型方法
public <T>
返回值类型 方法名 (T t){ }:泛型方法不要求在泛型类或者泛型接口中。
1.上限:
关键词:<?extend 上限类名> :表示此类及其子类
范例 : List <? extend Number> = new ArrayList()
2.下限:
关键词:<?super 上限类名> :表示此类及其父类
范例:List <? super Number> = new ArrayList()
二、可变参数
1.使用情景:
例如:想用一个方法,求两个数,三个数,多个数的和。
public int sum(a,b)
public int sum(a,b,c)
public int sum(a,b,c,d)
原来我们会用方法重载的方式去一个一个写这些参数,但是参数多了之后,我们还去一个一个写就过于麻烦。
2.解决(使用可变参数)方法:
修饰符 返回值 方法名(形参类型… 形参名)
形参名表示将参数封装成一个数组,我们可以通过增强for循环此数组,返回sum的值。
示例:
public int sun(int... a){
int sum=0;
for(int i : a)}
sum+=i;
}
return sum;
}
3.注意事项:
如果可变参数方法中含有不可变参数,一定要加到可变参数之前。
正确示例:
public int sum(int b,int… a)
错误示例:
public int sum(int… a,int b)