泛型(Generic)
- 含义
就是泛指一个类型,通过指定类型可以在编译时就能检测出是否发生castException(类型转换)异常。减少了程序员编程时的错误。
- 在哪里用
在类或者方法上使用
- 泛型的上限和下限
<T extends String> //设置上限,只能是String类型
<T super String> //设置下限,只能是String或它的父类Object
实例分析
当需要根据传进来的参数类型来确定或显示最终变量的类型时,可以使用泛型来指定传进来的参数类型和能接受的参数类型。
import java.util.ArrayList;
//根据传进来的参数类型来确定我这里变量的类型,
class GenericClass<T>{//使用<xx>你随便起名字,指明了这个类是泛型类,里面的名字你随意
//但是最好用T来表示。因为T是Type的缩写表明他是一个类型
private T fruit;
public GenericClass() {
// TODO Auto-generated constructor stub
}
public GenericClass(T fruit) {
// TODO Auto-generated constructor stub
this.fruit=fruit;
}
public void doSomething() {
System.out.println(((String)fruit).toUpperCase());
}
public void doOtherSomething_Type1(GenericClass<?> t) {
System.out.println(t);
}
public void doOtherSomething_Type2() {
}
}
//@SuppressWarnings("all")//这个表达式用来忽略编译器的警告里面的值很多自己查阅官网资料进行使用
public class Hello{
public static void main(String[] args) {
//未指定类型
ArrayList arrayList = new ArrayList();
arrayList.add(1);
arrayList.add("hello");
//指定类型
GenericClass<String> genericClass = new GenericClass<>();
//GenericClass<String> genericClass,这部分指明引用类型的泛型类型
//new GenericClass<>(),指明了new对象的类型为指定类型,<>里面有没有String都行
genericClass.doSomething();
}
}
强类型语言与弱类型语言
强类型语言:一旦一个变量被指定了某个数据类型,如果不经过强制转换那么它永远都是这个数据类型。如:Java,.NET,Python。
弱类型语言:数据类型可以被忽略的语言,其中一个变量可以赋不同的数据类型的值。如JS,PHP。
final关键字
可以声明在类中,方法中,属性中
1.使用在类上:final class A, 表明这个类不能被继承
2.使用在属性上:final String a,表明这个属性也就是引用不能改变,即永远指向它指的变量
3.使用在方法上:final void method() { }表明这个方法不能被子类复写。