77范文网 - 专业文章范例文档资料分享平台

java实验1-8(3)

来源:网络收集 时间:2018-12-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

System.out.println(\}

public static void main(String[] args) { OverrideTest test = new OverrideTest1(); try { test.fun(); test.fun1(); }

catch(Exception e) { } } }

class OverrideTest1 extends OverrideTest{ // 以下正常Override

public void fun() throws TestException2 { System.out.println(\}

// 不能Override父类中的方法,因为它定义了不同的异常类型和 // 返回值。

//public int fun() throws TestException1 { // System.out.println(\// return 1; //}

// 不能Override父类中的方法,因为它抛出了比父类中非法范围 // 更大的异常。

//public void fun() throws Exception { // System.out.println(\//}

// 这个方法并没有Override父类中的fun1方法,因为这个方法在 // 父类是private类型,所以这里只是相当于定义了一个新方法。 public void fun1() {

System.out.println(\} }

class TestException extends Exception{ public TestException(String msg) { super(msg); } }

class TestException1 extends TestException { public TestException1(String msg) { super(msg); } }

class TestException2 extends TestException { public TestException2(String msg) { super(msg); } }

2、实验步骤:

①编译并运行SimpleInheritance.java,观察并记录结果。 参考输出结果: Contents of superOb: i and j: 10 20 Contents of subOb: i and j: 7 8 k: 9

Sum of i, j and k in subOb: i+j+k: 24

②编译并运行OverloadTest.java,观察并记录结果。 ③编译并运行OverrideTest.java,观察并记录结果。 ④尝试编辑、编译、运行课本上的其他程序。 ⑤编写实验报告

根据以下的实验报告要求,完成并提交实验报告。

实验四:字符串与异常处理应用程序的设计

一 实验目的

1、 掌握java字符串处理方法。 2、 掌握java自定义异常和处理。

3、 通过实验,对Java程序的开发有一个深入了解。 二 实验原理

Java中将字符串作为String类型对象来处理。当创建一个String对象时,被创建的字符串是不能被改变的。每次需要改变字符串时都要创建一个新的String对象来保存新的内容。原始的字符串不变。之所以采用这种方法是因为实现固定的,不可变的字符串比实现可变的字符串更高效。对于那些想得到改变的字符串的情况,有一个叫做StringBuffer的String类的友类,它的对象包含了在创建之后可以改变的字符串。

String类和StringBuffer类都在java.lang中定义。因此它们可以自动的被所有程序使用。两者均被说明为final,这意味着两者均不含子类。

异常是在程序运行过程中发生的异常事件,比如除0溢出、数组越界、文件找不到等,这些事件的发生将阻止程序的正常运行。为了加强程序的鲁棒性,程序设计时,必须考虑到可能发生的异常事件并做出相应的处理。Java通过面向对象的方法来处理异常。在一个方法的运行过程中,如果发生了异常,则这个方法生成代表该异常的一个对象,并把它交给运行时系统,运行时系统寻找相应的代码来处理这一异常。我们把生成异常对象并把它提交给运行时系统的过程称为抛弃(throw)一个异常。运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回朔,直到找到包含相应异常处理的方法为止,这一个过程称为捕获(catch)一个异常。

try-catch-finally程序块的执行流程以及执行结果分析: 首先执行的是try语句块中的语句,这时可能会有以下三种情况:

1.如果try块中所有语句正常执行完毕,那么finally块的居于就会被执行,这时分为以下两种情况:

1.1如果finally块执行顺利,那么整个try-catch-finally程序块正常完成。 1.2如果finally块由于原因R突然中止,那么try-catch-finally程序块的结局是“由于原因R突然中止(completes abruptly)”

2.如果try语句块在执行过程中碰到异常V,这时又分为两种情况进行处理: 2.1如果异常V能够被与try相应的catch块catch到,那么第一个catch到这个异常的catch块(也是离try最近的一个与异常V匹配的catch块)将被执行;这时就会有两种执行结果:

2.1.1如果catch块执行正常,那么finally块将会被执行,这时分为两种情况: 2.1.1.1如果finally块执行顺利,那么整个try-catch-finally程序块正常完成。 2.1.1.2如果finally块由于原因R突然中止,那么try-catch-finally程序块的结局是“由于原因R突然中止(completes abruptly)”

2.1.2 如果catch块由于原因R突然中止,那么finally模块将被执行,分为两种情况: 2.1.2.1 如果如果finally块执行顺利,那么整个try-catch-finally程序块的结局是“由于原因R突然中止(completes abruptly)”。

2.1.2.2 如果finally块由于原因S突然中止,那么整个try-catch-finally程序块的结局是“由于原因S突然中止(completes abruptly)”,原因R将被抛弃。

2.2如果异常V没有catch块与之匹配,那么finally模块将被执行,分为两种情况: 2.2.1如果finally块执行顺利,那么整个try-catch-finally程序块的结局就是“由于抛出异常V而突然中止(completes abruptly)”。

2.2.2如果finally块由于原因S突然中止,那么整个try-catch-finally程序块的结局是“由于原因S突然中止(completes abruptly)”,异常V将被抛弃。

3.如果try由于其他原因R突然中止(completes abruptly),那么finally块被执行,分为两种情况:

3.1 如果finally块执行顺利,那么整个try-catch-finally程序块的结局是“由于原因R突然中止(completes abruptly)”。

3.2 如果finally块由于原因S突然中止,那么整个try-catch-finally程序块的结局是“由于原因S突然中止(completes abruptly)”,原因R将被抛弃。 三 实验环境

运行Windows的PC机,已经安装JDK 四 实验内容和步骤 1、实验内容:

①String构造函数。

查看相关api文档,阅读以下程序: public class SubStringConv{ }

②熟悉字符串的访问方法: 类String中提供的方法:

◇ public int length() 此方法返回字符串的字符个数

◇ public char charAt(int index) 此方法返回字符串中index位置上的字符,其中index 值的 范围是0~length-1

◇ public int indexOf(int ch) public lastIndexOf(in ch)

返回字符ch在字符串中出现的第一个和最后一个的位置 ◇ public int indexOf(String str) public int lastIndexOf(String str)

返回子串str中第一个字符在字符串中出现的第一个和最后一个的位置 ◇ public int indexOf(int ch,int fromIndex)

public static void main(String[] args){ }

byte ascii[]={65,66,67,68,69,70}; String s1=new String(ascii); System.out.println(s1);

String s2=new String(ascii,2,3); System.out.println(s2);

public lastIndexOf(in ch ,int fromIndex)

返回字符ch在字符串中位置fromIndex以后出现的第一个和最后一个的位置 ◇ public int indexOf(String str,int fromIndex) public int lastIndexOf(String str,int fromIndex)

返回子串str中的第一个字符在字符串中位置fromIndex后出现的第一个和最后一个的位置。

◇ public void getchars(int srcbegin,int end ,char buf[],int dstbegin)

srcbegin 为要提取的第一个字符在源串中的位置, end为要提取的最后一个字符在源串中的位置,字符数组buf[]存放目的字符串, dstbegin 为提取的字符串在目的串中的起始位置。

◇public void getBytes(int srcBegin, int srcEnd,byte[] dst, int dstBegin) 参数及用法同上,只是串中的字符均用8位表示。

类StringBuffer提供了 length( )、charAt( )、getChars( )、capacity()等方法。 方法capacity()用来得到字符串缓冲区的容量,它与方法length()所返回的值通常是不同的。

③熟悉修改字符串的方法: String类提供的方法:

◇ public String contat(String str);

用来将当前字符串对象与给定字符串str连接起来。 ◇ public String replace(char oldChar,char newChar); 用来把串中出现的所有特定字符替换成指定字符以生成新串。 ◇ public String substring(int beginIndex);

public String substring(int beginIndex,int endIndex); 用来得到字符串中指定范围内的子串。 ◇ public String toLowerCase(); 把串中所有的字符变成小写。 ◇ public String toUpperCase(); 把串中所有的字符变成大写。 StringBuffer类提供的方法:

在这些方法中,如果操作后的字符超出已分配的缓冲区,则系统会自动为它分配额外的空间。

◇ public synchronized StringBuffer append(String str); 用来在已有字符串末尾添加一个字符串str。

◇ public synchronized StringBuffer insert(int offset, String str); 用来在字符串的索引offset位置处插入字符串str。

◇ public synchronized void setCharAt(int index,char ch); 用来设置指定索引index位置的字符值。

注意:String中对字符串的操作不是对源操作串对象本身进行的,而是对新生成的一个源操作串对象的拷贝进行的,其操作的结果不影响源串。

相反,StringBuffer中对字符串的连接操作是对源串本身进行的,操作之后源串的值发生了变化,变成连接后的串。

④熟悉字符串的其它操作 1.字符串的比较

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java实验1-8(3)在线全文阅读。

java实验1-8(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/332074.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: