泛型与异常初步了解
泛型:
1.泛型,一种把类型明确的工作推迟到创建对象或调用方法的方式,即“参数化类型”,把类型当参数传递
2.是对java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类
3.在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法
4.泛型的主要目标是提高java程序的类型安全性
5.泛型类型必须是引用类型
-
使用泛型前:
ObjectA类
package com.HSY.ObjectA; public class ObjectA { public void show(String str) { System.out.println(str); } public void show(int i) { System.out.println(i); } }
Test类
package com.HSY.Test; import com.HSY.ObjectA.ObjectA; public class Test { public static void main(String[] args) { ObjectA ob = new ObjectA(); ob.show("hello world"); ob.show(2022); } }
-
使用泛型后:
ObjectA类
package com.HSY.ObjectA; public class ObjectA<T> { public void show(T t) { System.out.println(t); } }
在上面在使用泛型前后Test类都不改变的情况下,输出的结果都为: hello world 2022 可见,泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型,且不传入泛型类型实参的话,在泛型类中使用泛型的方法或成员变量定义的类型可以为任何的类型
异常
java异常机制用到的关键字: try 、 catch 、 finally 、 throw 、 throws
• try -- 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出
• catch -- 用于捕获异常。catch用来捕获try语句块中发生的异常
• finally -- finally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止
• throw -- 用于抛出异常
• throws -- 用在方法签名中,用于声明该方法可能抛出的异常
throws 与 throw
throws
1.用于声明抛出的异常
2.语法格式:(修饰符)(返回值类型)(方法名)(参数列表) throws Exception1,Exception2,···{···}
throw
1.用于抛出异常
2.语法格式: throw 异常对象;
3.java异常体系中的异常都是在运行时由系统抛出,用户自定义时必须自行抛出
4.自行抛出异常使用 throw 语句,它抛出的是异常对象,每次只能抛出一个异常对象
5.一旦执行 throw 语句,其后的代码都不会被执行
throws抛出NumberFormatException异常示例:
public class ThrowsExceptonTest
{
public static void main(String[] args) throws NumberFormatException
{
Scanner scn = new Scanner(System.in);
System.out.println("请输入字符串:");
String str = scn.next();
int num = Integer.parseInt(str);
System.out.println(num);
}
}
运行结果: