实验二常用类与异常处理doc资料.docx

上传人:b****3 文档编号:27076287 上传时间:2023-06-26 格式:DOCX 页数:18 大小:1.95MB
下载 相关 举报
实验二常用类与异常处理doc资料.docx_第1页
第1页 / 共18页
实验二常用类与异常处理doc资料.docx_第2页
第2页 / 共18页
实验二常用类与异常处理doc资料.docx_第3页
第3页 / 共18页
实验二常用类与异常处理doc资料.docx_第4页
第4页 / 共18页
实验二常用类与异常处理doc资料.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

实验二常用类与异常处理doc资料.docx

《实验二常用类与异常处理doc资料.docx》由会员分享,可在线阅读,更多相关《实验二常用类与异常处理doc资料.docx(18页珍藏版)》请在冰豆网上搜索。

实验二常用类与异常处理doc资料.docx

实验二常用类与异常处理doc资料

 

实验二常用类与异常处理

甘肃政法学院

本科生实验报告

(二)

姓名:

学院:

专业:

班级:

实验课程名称:

JavaSE程序设计

实验日期:

2014年4月16日

指导教师及职称:

实验成绩:

开课时间:

2014——2015学年第1学期

 

甘肃政法学院实验管理中心印制

 

实验题目

常用类与异常处理

小组合作

姓名

班级

学号

一、实验目的

1.掌握Java语言的异常处理机制。

2.掌握Java语言中常用的实用类。

3.理解什么是异常。

4.掌握异常处理方法:

抛出异常、捕捉和处理异常。

5.掌握自定义异常类。

6.掌握javaString类的各个常用方法的应用。

7.掌握Date类和Calendar类的各个常用方法的应用。

8.掌握StringTokenizer类的用法。

9.了解正则表达式的用法

10.掌握简单的异常处理流程。

11.内部类的应用

二.实验环境

(1)配置好环境变量的PC计算机

(2)应用Eclipse进行Java代码的编写、调试及运行

三、实验内容与步骤

1、String类的常用方法应用。

classStringExample

{publicstaticvoidmain(Stringargs[])

{Strings1=newString("youareastudent"),

s2=newString("howareyou");

if(s1.equals(s2))//使用equals方法判断s1与s2是否相同

{

System.out.println("s1与s2相同");

}

else

{

System.out.println("s1与s2不相同");

}

Strings3=newString("22030219851022024");

if(s3.startsWith("220302"))//判断s3的前缀是否是“220302”。

{

System.out.println("吉林省的身份证");

}

Strings4=newString("你"),

s5=newString("我");

if(pareTo(s5)>0)//按着字典序s4大于s5的表达式。

{

System.out.println("按字典序s4大于s5");

}

else

{

System.out.println("按字典序s4小于s5");

}

intposition=0;

Stringpath="c:

\\java\\jsp\\A.java";

position=path.lastIndexOf("\\");//获取path中最后出现目录分隔符号的位置

System.out.println("c:

\\java\\jsp\\A.java中最后出现\\的位置:

"+position);

StringfileName=path.substring(12,18);//获取path中“A.java”子字符串。

System.out.println("c:

\\java\\jsp\\A.java中含有的文件名:

"+fileName);

Strings6=newString("100"),

s7=newString("123.678");

intn1=Integer.parseInt(s6);//将s6转化成int型数据。

doublen2=Double.parseDouble(s7);//将s7转化成double型数据。

doublem=n1+n2;

System.out.println(m);

Strings8=String.valueOf(m);//String调用valuOf(intn)方法将m转化为字符串对象

position=s8.indexOf(".");

Stringtemp=s8.substring(position+1);

System.out.println("数字"+m+"有"+temp.length()+"位小数");

Strings9=newString("ABCDEF");

chara[]=s8.toCharArray();//将s8存放到数组a中。

for(inti=a.length-1;i>=0;i--)

{

System.out.print(""+a[i]);

}

}

}

2、Date类和Calendar类的各个常用方法的应用:

比较日期的大小。

packagep.i;

importjava.util.*;

importjavax.swing.JOptionPane;

publicclassDateExample

{

publicstaticvoidmain(Stringargs[])

{

Stringstr=JOptionPane.showInputDialog("输入第一个日期的年份:

");

intyearOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入该年的月份:

");

intmonthOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入该月份的日期:

");

intdayOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入第二个日期的年份:

");

intyearTwo=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入该年的月份:

");

intmonthTwo=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入该月份的日期:

");

intdayTwo=Integer.parseInt(str);

Calendarcalendar=Calendar.getInstance();//初始化日历对象

calendar.set(yearOne,monthOne,dayOne);//将calendar的时间设置为yearOne年monthOne月dayOne日

longtimeOne=calendar.getTimeInMillis();//calendar表示的时间转换成毫秒

calendar.set(yearTwo,monthTwo,dayTwo);//将calendar的时间设置为yearTwo年monthTwo月dayTwo日

longtimeTwo=calendar.getTimeInMillis();//calendar表示的时间转换成毫秒。

Datedate1=newDate(timeOne/(1000*60*60*24));//用timeOne做参数构造date1

Datedate2=newDate(timeTwo/(1000*60*60*24));//用timeTwo做参数构造date2

if(date2.equals(date1))

{

System.out.println("两个日期的年、月、日完全相同");

}

elseif(date2.after(date1))

{

System.out.println("您输入的第二个日期大于第一个日期");

}

elseif(date2.before(date1))

{

System.out.println("您输入的第二个日期小于第一个日期");

}

longdays=(timeOne-timeTwo)/(1000*60*60*24);//计算两个日期相隔天数

System.out.println(yearOne+"年"+monthOne+"月"+dayOne+"日和"

+yearTwo+"年"+monthTwo+"月"+dayTwo+"相隔"+days+"天");

}

}

3、处理大整数

packagej.u;

//BigintegerExample

importjava.math.*;

classBigIntegerExample

{

publicstaticvoidmain(Stringargs[])

{BigIntegern1=newBigInteger("987654321987654321987654321"),

n2=newBigInteger("123456789123456789123456789"),

result=null;

result=n1.add(n2);//n1和n2做加法运算

System.out.println("和:

"+result.toString());

result=n1.subtract(n2);//n1和n2做减法运算

System.out.println("差:

"+result.toString());

result=n1.multiply(n2);//n1和n2做乘法运算

System.out.println("积:

"+result.toString());

result=n1.divide(n2);//n1和n2做除法运算

System.out.println("商:

"+result.toString());

BigIntegerm=newBigInteger("1968957"),

COUNT=newBigInteger("0"),

ONE=newBigInteger("1"),

TWO=newBigInteger("2");

System.out.println(m.toString()+"的因子有:

");

for(BigIntegeri=TWO;pareTo(m)<0;i=i.add(ONE))

{if((n1.remainder(i).compareTo(BigInteger.ZERO))==0)

{COUNT=COUNT.add(ONE);

System.out.print(""+i.toString());

}

}

System.out.println("");

System.out.println(m.toString()+"一共有"+COUNT.toString()+"个因子");

}

}

4、红牛农场

packagew.m;

//RedCowForm.java

publicclassRedCowForm{

StringformName;

RedCowcow;//用内部类RedCow声明对象cow

RedCowForm(){

}

RedCowForm(Strings){

cow=newRedCow(150,130,4500);//创建cow

formName=s;

}

publicvoidshowCowMess(){

cow.speak();

}

classRedCow{//内部类的声明

StringcowName="红牛";

intheight,weight,price;

RedCow(inth,intw,intp){

height=h;

weight=w;

price=p;

}

voidspeak(){

System.out.println(cowName+",身高:

"+height+"cm体重:

"+weight+"kg");

System.out.println("生活在"+formName);

}

}

}

packagew.m;

//MainClass.java

publicclassMainClass{

publicstaticvoidmain(Stringargs[]){

RedCowFormform=newRedCowForm("红牛农场");

form.showCowMess();

}

}

5、检查危险品

packagee.d;

//Check.java

publicclassCheck{

publicstaticvoidmain(Stringargs[]){

Machinemachine=newMachine();

Stringname[]={"苹果","炸药","西服","硫酸","手表","硫磺"};

Goods[]goods=newGoods[name.length];//检查6件物品

for(inti=0;i

goods[i]=newGoods();

if(i%2==0){

goods[i].setIsDanger(false);

goods[i].setName(name[i]);

}

else{

goods[i].setIsDanger(true);

goods[i].setName(name[i]);

}

}

for(inti=0;i

try{machine.checkBag(goods[i]);

System.out.println(goods[i].getName()+"检查通过");

}

catch(DangerExceptione){

e.toShow();//e调用toShow()方法

System.out.println(goods[i].getName()+"被禁止!

");

}

}

}

}

packagee.d;

//DangerException.java

classDangerExceptionextendsException{

Stringmessage;

publicDangerException(){

message="危险品!

";

}

publicvoidtoShow(){

System.out.print(message+"");

}

}

packagee.d;

//Goods.java

classGoods{

booleanisDanger;

Stringname;

publicvoidsetIsDanger(booleanboo){

isDanger=boo;

}

publicbooleanisDanger(){

returnisDanger;

}

publicvoidsetName(Strings){

name=s;

}

publicStringgetName(){

returnname;

}

}

packagee.d;

//Machine.java

classMachine{

booleanisDanger;

Stringname;

publicvoidsetIsDanger(booleanboo){

isDanger=boo;

}

publicvoidcheckBag(Goodsgoods)throwsDangerException{

if(goods.isDanger()==true)

thrownewDangerException();

}

}

6、StringTokenizer的应用

packager.o;

//FoundPrice.java

importjava.util.*;

publicclassFoundPrice{

publicstaticvoidmain(Stringargs[]){

Strings="牛奶:

89.8元,香肠:

12.9元啤酒:

69元巧克力:

132元";

Stringregex="[^0123456789.]";//匹配非数字的正则表达识

StringdigitMess=s.replaceAll(regex,"*");

StringTokenizerfenxi=newStringTokenizer(digitMess);//创建fenxi,用*做分隔标记解析digitMess中的单词

intnumber=fenxi.countTokens();//fenxi调用countTokens()方法返回单词数量

doublesum=0;

while(fenxi.hasMoreTokens()){

Stringstr=fenxi.nextToken();//fenxi调用nextToken()方法返回单词

System.out.println(str);

sum=sum+Double.parseDouble(str);

}

System.out.println("购物小票中的商品种类:

"+number+"种");

System.out.println("购物小票中的价格总额:

"+sum+"元");

}

}

7、正则表达式的应用

packagei.p;

importjava.util.regex.*;

publicclassReplaceIP{

publicstaticvoidmain(Stringargs[]){

Stringstr="登录网站:

222.128.89.253";

Patternpattern;

Matchermatcher;

Stringregex="[\\d]{1,3}[.][\\d]{1,3}[.][\\d]{1,3}[.][\\d]{1,3}";

pattern=Ppile(regex);//使用regex初试化模式对象pattern

matcher=pattern.matcher(str);//得到检索str的匹配对象matcher

StringIP="";

while(matcher.find()){

IP=matcher.group();

System.out.print(matcher.start()+"位置出现:

");

System.out.println(IP);

}

System.out.printf("将%s替换为202.192.78.56\n",IP);

Stringresult=matcher.replaceAll("202.192.78.56");

System.out.println(result);

}

}

 

四、实验过程与分析

实验的运行结果如下:

1.

2.

3.

4.

5.

6.

7.

五、实验总结

1.Java语言也需要多写多练,在错误中不断丰富自己的经验,在不断的练习下,不仅可以熟悉Java程序,也能很好的去尝试编写自己的Java程序。

2.在本次实验中,确实或多或少也遇到了一些问题,有的自己能独立解决,但是有的在自己有限的能力范围内,还是没有很好的解决,例如第6小题的实验,结果是这样的:

3.这次实验中的Java常用类方法确实给我们记忆上带来了一定的难度,因为非常多也非常灵活,在一定程度上也难,咨询过老师后,老师给的建议是多参考JDK帮助文档,现在发现这个方法也确实挺有

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1