java异常处理_第1页
java异常处理_第2页
java异常处理_第3页
java异常处理_第4页
java异常处理_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.自定义异常类,封装取款时发生异常的情况。定义银行账号类,当取款发生异常时抛出该异常,并写测试类测试。精品.public class depositexception extends exception public depositexception() super(); / todo auto-generated constructor stub public depositexception(string message) super(message); / todo auto-generated constructor stub package com.chinasofti.bank;/

2、* * 银行账户的父类,定义共同的属性和方法 * 是抽象类,定义子类的共同特征 * author wxh * */public abstract class account / 定义属性 private string accountid; private string pwd; private double balance; / 日志数组 private string loginfo=new string3; private int logindex; / 无参数构造方法 public account()/ 使用this调用本类重载的其他构造方法 this(0000,123456,0.0);

3、system.out.println(调用account(); public account(string accountid, string pwd, double balance) super(); this.accountid = accountid; this.pwd = pwd; this.balance = balance; system.out.println(调用account(string accountid, string pwd, double balance); / getters和setters public string getaccountid() return

4、accountid; public string getpwd() return pwd; public void setpwd(string pwd) this.pwd = pwd; public double getbalance() return balance; public void setbalance(double balance) this.balance = balance; / 存款,不使用异常/ public boolean deposit(double amount)/ boolean flag=true;/ if(amount0&amount0&amount0&amo

5、unt0&amount0&amount=100000) limit+=limit*1.1; super.deposit(amount); / 重写父类中的抽象方法 public void withdraw(double amount) system.out.println(信用卡取款,需要交利息); if(amountlimit*0.2) super.setbalance(super.getbalance()-amount); logger.log(this, 信用卡提现成功,金额:+amount); 7 常用api常用api 判断一门语言是否强大,其中一个指标就是看已经提供的可用函数库或类库

6、是否丰富 javase提供了丰富的类库 一定要习惯查询api帮助文档 常用的包:java.lang/java.util/java.io/java.sql 数学apimath类中的所有方法都是静态的,提供了大量进行数学运算的方法。 math类 位于java.lang包中 数学类定义了许多数学函数,如sin、cos、exp、abs等。math类是一个工具类,它在解决与数学有关的一些问题有着非常重要的作用。 这个类有两个静态属性:e和pi。e代表数学中的e 2.7182818,而pi代表圆周率3.1415926。 math类中的方法都是static方法,调用静态方法可以直接使用类名.方法名来调用,不

7、需要先创建类的一个对象 math类静态方法 math.abs 求绝对值 math.sin 正弦函数 math.asin 反正弦函数 math.cos 余弦函数 math.acos 反余弦函数 math.tan 正切函数 math.atan 反正切函数 math.todegrees 弧度转化为角度 math.toradians 角度转化为弧度 math.ceil 得到不小于某数的最大整数 math.floor 得到不大于某数的最大整数math类静态方法 math.max 求两数中最大 math.min 求两数中最小 math.sqrt 求开方 math.pow 求某数的任意次方, 抛出arith

8、meticexception处理溢出异常精品. math.exp 求e的任意次方 math.log10 以10为底的对数 math.log 自然对数 math.rint 求距离某数最近的整数(可能比某数大,也可能比它小) math.round 同上,返回int型或者long型(上一个函数返回double型) math.random 返回0,1之间的一个随机数9 时间与日期日历在实际工作过程中,时间、日期是非常常见的类型。 date类 表示特定的瞬间,精确到毫秒 dateformat类(抽象类) 抽象类,以与语言无关的方式格式化并分析日期或时间。 simpledateformat类( datef

9、ormat的子类) 与语言环境相关的方式来格式化和分析日期的具体类 calendar类 抽象类,为特定瞬间与一组诸如 year、month、day_of_month、hour 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。 java中日期的常见处理 创建日期 日期格式化显示 日期的转换(主要是和字符串之间的相互转换) 日期中年、月、日、时、分、秒、星期、月份等获取。 日期的大小比较、日期的加减。10 biginteger类使用的原因 8种基本数据类型中,long类型所能表示的整数范围是最大的,但还是有限的。 为了解决这些问题,java中专门提供了

10、用来进行不限制大小的整数计算的类java.math.biginteger。 该类可以对任意大小的整数进行操作,不过在进行计算的时候是通过方法调用进行的,而不是使用算术运算符biginteger类-构造方法 biginteger(byte val):使用一个byte数组表示来构造一个大整数, biginteger(int signum, byte magnitude):用一个byte数组magnitude来构造大整数,用signum的-1,0,1来表示负,零,正。 biginteger(int bitlength, int certainty, random rnd):构造一个随机产生的,正的,

11、指定长度的,可能是素数的大整数,参数certainty指明要进行多少次素数测试. biginteger(int numbits, random rnd):构造一个随机产生的大整数,范围在0到2numbits 1之间.biginteger类-构造方法 精品. biginteger(string val):转换十进制的字符串表达方式为biginteger这个字符串由一系列的10进制数字和可选择的负号组成符转数字的映射由character.digit实现这个字符串不能包含任意无关字符(例如:空格) biginteger(string val, int radix):转换字符串的表达式为指定(radi

12、x)进制的大整数这个字符串由一系列的指定进制(radix)的数字组成,任意跟上负号字符转数字的映射由character.digit实现同样,这个字符串不能包含任意无关字符(例如:空格)biginteger的方法-四则运算实现 add(biginteger val) 返回其值为 (this + val) 的 biginteger。 subtract(biginteger val) 返回其值为 (this - val) 的 biginteger。 multiply(biginteger val) 返回其值为 (this * val) 的 biginteger。 divide(biginteger

13、val) 返回其值为 (this / val) 的 biginteger。 remainder(biginteger val) 返回其值为 (this % val) 的 biginteger mod(biginteger m) 返回其值为 (this mod m) 的 biginteger。 9 随机处理我们常常可能需要使用一些随机数。比如扫雷游戏中,地雷的位置。 random类 random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。 相同种子数的random对象,相同次数生成

14、的随机数字是完全相同的。也就是说,两个种子数相同的random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。random类构造方法 public random():该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造random对象。 public random(long seed):该构造方法可以通过制定一个种子数进行创建。random类方法 public boolean nextboolean():该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是5

15、0%的几率。 public double nextdouble():该方法的作用是生成一个随机的double值,数值介于0,1.0)之间。 例如:生成0,1.0)区间的小数 double d1 = r.nextdouble(); 直接使用nextdouble方法获得。random类方法 public int nextint():该方法的作用是生成一个随机的int值,该值介于int的区间,也就是-231到231-1之间。如果需要生成指定区间的int值,则需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。 例如:生成任意整数 int n1 = r.nextint(); 直接使用nexti

16、nt方法即可。精品.public int nextint(int n):该方法的作用是生成一个随机的int值,该值介于0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。如果想生成指定区间的int值,也需要进行一定的数学变换,具体可以参看下面的使用示例中的代码random类方法 public void setseed(long seed)该方法的作用是重新设置random对象中的种子数。设置完种子数以后的random对象和相同种子数使用new关键字创建出的random对象相同示例 相同种子数的random对象,相同次数生成的随机数字是完全相同的,下面是测试的代码: random

17、r1 = new random(10);random r2 = new random(10);for(int i = 0;i 2;i+)system.out.println(r1.nextint();system.out.println(r2.nextint();在该代码中,对象r1和r2使用的种子数都是10,则这两个对象相同次数生成的随机数是完全相同的。与math类中的random方法比较 在math类中也有一个random方法,该random方法的工作是生成一个0,1.0)区间的随机小数。 math类中的random方法就是直接调用random类中的nextdouble方法实现的。 random方法的调用比较简单,所以很多程序员都习惯使用math类的random方法来生成随机数字。11 国际化支持国际化支持是多语言版本应用都要考虑的问题,本节学习java语言对国际化的支持,实际我们常常做的是javaee的企业应用,往往一些框架都有内置的国际化支持方案,不过了解java语言的支持,有助于理解框架国际化支持。 java程序的国际化主要通过如下两个类完成 java.util.locale:用于封装一个特定的国家/区域,语言环境 java.util.resourcebundl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论