安卓培训(java篇)第八天—常用类(下)和异常
Math数学类:里面所有方法都是static;
常用方法:
abs 绝对值
sqrt 平方根
pow(double a, double b) a的b次幂
max(double a, double b) 比较两个数中谁大
min(double a, double b) 比较两个数中谁小
random() 返回0.0到1.0的随机数,但不能取到1
long round(double a) double型的数据a转换为long型(四舍五入)
Random伪随机类(所有的方法都来自Math.random()这个方法)
常用构造方法:new Random();
常用方法:nextInt(int i) 0到i-1 返回类型是int类型;
注意事项:做项目时,一般用伪随机类,因为它里面的方法更灵活;但如果从内存角度分析,则考虑选择Math.random();
Date类:java.util.Date:获取当前系统时间;System.out.println(new Date());此时按照系统的格式;
Format--DateFormat--SimpleDateFormat;表示日期的格式
SimpleDateFormat常用的构造方法:new SimpleDateFormat(String regx);//日期格式;
SimpleDateFormat常用的方法:
format(Date date);返回String类型;
parse(String str);返回Date类型(把给定的字符串str解析成日期格式,必须跟regx一致)
常用的字段:
Calendar是一个抽象类:
对象创建:Calendar c=Calendar.getInstance();获取当前的系统时间
常用方法:
get(int a); 返回int类型,a表示字段
setTime(Date date);无返回值;
getTime(); 返回Date类型;
add(当前月中的天数,相差的天数);可以输出前推或后移日期的当前时间
System(从C++演变而来)
常用方法:
arrayCopy(5个参数)
exit(int i);当i=0时,表示正常退出(Java虚拟机),否则非正常退出;
currentTimeMillis();可以用它来测试程序的执行时间,注意单位是毫秒;
异常 即不正常
分类:编译时异常、运行时异常和错误之间的理解:
Error:称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。
Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示地声明或捕获。
Runtime Exception:一类特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显示地声明或捕获将会对程序可读性和运行效率影响很大。因此有系统自动检测并将它们交给却省的异常处理程序(用户可不必对其处理)。
语法:
try{
<尝试捕获异常信息>
}catch(异常类 异常对象名){
<捕获到异常信息(printStackTrace();),也可以自定义异常信息(System.out.println(..))>
}finally{
<一定会被执行语句块>
}
public void f() throws 异常类名{} //类似与try{}catch(){},但不能自定义异常信息
public void f(){
throw 异常类对象; //此时一定要抛出异常信息
}
注意事项:
try{
}catch(异常类1){
}catch(异常类2){
}...
异常类2>异常类1, 子类在前,父类在后
异常父类:class Exception extends Throwable{};
getMessage(); 返回值来自构造方法里面的形参;
例:
public void f(){
try{
throw new Exception("abc");
}catch(Exception e){
System.out.println(e.getMessage()); //输出abc
}
}
课后练习:
已知有一个数组int[] a={1,2,3,4,5,6,7,8,9};
(1)利用Random做一个这样的验证码:随机数1+随机数2=? 比如:1+2=?
(2)算出它的值,并用Scanner输入值,判断输入的值是否正确;
代码:
public class YangZhengMa{
public static void main(String[] args){
int[] a={1,2,3,4,5,6,7,8,9};
Scanner s = new Scanner(System.in);
Random r = new Random();
for(int i = 0; i < 2; i++){
a[i] = r.nextInt(9);
}
while(true){
System.out.print(a[0] + "+" + a[1] + "=");
if(a[0] + a[1] == s.nextInt()){
System.out.println("OK");
break;
}else{
System.out.println("重输");
}
}
}
}
本文出自 “坤” 博客,请务必保留此出处http://linyingkun.blog.51cto.com/2393912/1575177
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。