Java实验指导(试验四)
- 格式:doc
- 大小:51.00 KB
- 文档页数:5
实验指导书任课教师:杨菊英实验指导教师:杨菊英实验一:面向对象程序设计实验任务一1.实验项目的目的和任务•掌握JA VA环境的搭建•掌握顺序结构、分支结构、循环结构•体会面向对象程序设计基本思想2.上机实验内容(1)搭建JA VA环境练习;(2)验证JA VA基本数据类型;(3)编程实现判定一个数是不是素数,该数要求在主方法中输入。
3.学时数4学时1.实验项目的目的和任务•掌握类的相关知识及应用•掌握数组的应用•体会面向对象程序设计基本思想2. 上机实验内容(1)编写一个日期类Date,年月日为属性,四个构造方法来选择性的对属性进行重新赋值,默认日期为2011年4月22日,输出年月日的值,再编写一个测试类DateTest来完成日期类测试(要求对每个构造函数进行测试,并输出相应的日期。
)(2)需要求3个长方体的体积,数据成员包括长、宽、高,要求用成员函数实现以下功能:a.由键盘分别输入3个长方体的长宽高b.计算长方体的体积;c.输出3个长方体的体积。
(3)找出一个整型数组中的元素的最大值。
要求:数据从键盘输入。
3.学时数4学时1.实验项目的目的和任务•掌握switch分支语句、循环、数组的使用•掌握类的相关知识及应用•体会面向对象程序设计基本思想2.上机实验内容(一)、用数组实现约瑟夫出圈问题。
N个人排成一圈,从第一个人开始报数,从1开始报,报到m的人出圈,余下的人继续开始从1开始报数,直到所有的人都出圈为止。
对于m,n的值要求从键盘输入,求出所有人的出圈顺序。
(二)、利用switch来实现(三)、利用循环来实现以下图形的输出:(四)、编写相应的类,完成公司每类员工的工资计算工作。
某公司的雇员分为以下若干类:Employee:这是所有员工的总的父类属性:员工的姓名和出生月份。
方法:getSalary(int month)根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。
SalariedEmployee:Employee的子类,拿固定工资的员工。
Java程序设计实验指导实验四异常处理一、实验目的1、了解Java的异常处理机制;2、掌握如何合理应用异常处理机制;3、学会自定义异常处理类。
上机练习之前,必须先完成程序的书写,再上机调试。
二、实验任务1、类SimpleException中有方法public static double Division(double x,double y) {if(y==0)throw new IllegalArgumentException("分母不能为0"); //手动抛出异常,对于双精度而言,除数为0可以得到无穷大的值,本不会报异常错误,这里手动强制报错return x/y;}主方法中有代码:double a=Double.parseDouble(args[0]);double b=Double.parseDouble(args[1]);System.out.println(Division(a,b));借助异常机制获所有可能出现的异常,并提示相关异常的出错信息。
最后,无论程序如何结束,保证程序都能输出语句“游戏结束!!!”2、自定义日期类异常,1)、定义一个程序DateExceptionTest,该程序主方法中:a)、采用Scanner类的对象来接收三个整数b)、对于非整数数据,能采用异常进行验证c)、用三个整数借助自定义类DateException构建出一个日期对象,并以“yyyy-mm-dd”的形式输出该日期对象。
d)、使用类2)同时要求,自定义类DateException继承自Exceptiona)、拥有两个构造方法,分别是DateException(String s)、public DateException(int year,int month,int day) throws DateException和一个成员方法Date getDate()。
b)、第二个构造方法能接收三个整数,拥有验证三个数据是否合法的能力,验证时,对于非法数据格式,采用抛出异常DateException,抛出异常时,携带错误提示信息。
实验四java知识本实验目的是练习如何创建Java 的基本语法,以及面向对象的知识,为后续的实验作好准备工作。
【课堂练习】一(1)对数组排序【实验效果】根据实验要求,您必须在浏览器的地址栏中输入:Tomcat服务器的IP地址和端口号,如:http://localhost:8080/sort.jsp【课堂练习】Java面向对象思想课堂练习——包创建和引用案例:新建Project项目,在该项目中创建aa.bb包,然后再引入java.util包中的Date类,并创建ShiJian类,练习包的创建和引用。
课堂练习——相同包之间的访问案例:在已经建立Project项目中创建mr.bbb包,然后在该包中创建Test和ImpTest两个类,测试同包之间类的访问。
课堂练习——不同包中类之间的访问案例:在已经建立Project项目中创建mr.aaa包和mr.zzk包,然后分别在包中创建Exam 和ImpExam两个类,测试不同包之间类的访问。
课堂练习——final变量案例:在已经建立Project项目中创建mingri包,并在该包中创建T1类,在该类中定义一个final变量,然后再主方法中创建T1类的实例,并测试能否改变final变量的值。
课堂练习——final方法案例:在已创建的项目Project的包mingri中创建T1类的之类ExT1,然后再ExT1类中测试是否能重写父类T1中的final方法。
课堂练习——继承性案例:在项目的包aaa中创建A和B两个类,使类B是类A的子类,然后在子类B中创建B的实例,并通过该实例分别调用类A和类B的方法,掌握继承的原理。
课堂练习——抽象类案例:在项目的包aaa中创建抽象类Example及其子类SubExample,在抽象类Example 中分别定义一个成员方法和一个抽象方法,并在子类中进行测试。
课堂练习——权限访问案例:在项目的包aaa中创建类Exm,在该类中分别定义4种权限修饰符的成员变量并附初值,然后在主方法中创建类的实例,并分别输出这4个成员变量的值,测试上述4种权限修饰符的成员变量在当前类中的可见性。
实验报告_实验4 常用类(学生学号_姓名) 一、实验目的1.掌握String类的基本构造方法和常用方法的使用;2.熟悉StringBuffer类的追加、插入、查找、替换、删除等操作;3.熟悉Math类常量及常用方法的调用;4.熟悉包装类的功能、重要属性、主要构造器和常用方法;5.了解StringTokenizer类的一般使用。
二、实验内容与步骤1、(基础题)运行下列程序,并回答问题:(1) 对于String对象来说,“==”运算符与equals( )方法的功能有什么不同?“==”运算符比较两个字符串引用是否指向同一个对象。
equals( )方法在于比较两个字符串的内容是否完全相同。
(2) s1和s2是否指向同一对象?为什么?是,因为s1和s2是字符串常量,如果用户创建了一个字符串常量,系统首先会在字符串池中查找有无相同内容的字符串存在,若有就把原有取出使用,若无则重新生成,故s1和s2指向同一对象。
(3) s3和s4是否指向同一对象?为什么?不是,用构造器生成的字符串对象,它会在堆中生成一个对象,很明显s3和s4指向了不同的对象。
(4) s1==s3是否成立?为什么?不成立,“==”运算符比较两个字符串引用是否指向同一个对象。
很明显s1和s3指向了不同的对象。
(5) s1、s2、s3、s4的内容是否相同?是(6) compareTo( )方法的功能是什么?当比较结果分别为负数、正数、0 时,代表什么含义?pareTo(Str2);其返回的是一个int类型值。
若Str1等于参数字符串Str2字符串,则返回0;若该Str1按字典顺序小于参数字符串Str2,则返回值小于0;若Str1按字典顺序大于参数字符串Str2,则返回值大于0。
2、(基础题)根据程序注释,将所缺代码补充完整,然后运行程序:程序所缺代码:String str = new String("*****************.cn");System.out.println("字符串的长度: " + str.length()); // 输出字符串的长度System.out.println("字符串的首字符: " + str.charAt(0));// 输出字符串的首字符System.out.println("字符\'@\'的索引号(即下标): " + str.indexOf('@'));System.out.println("该邮箱的顶级域名(即最后一个单词): " + str.substring(stIndexOf('.')+1));System.out.println("字符串全部以大写方式输出为: " + str. toUpperCase());3、(基础题)根据程序注释,将所缺代码补充完整,再运行程序::程序所缺代码StringBuffer sb= new StringBuffer(“里约热内卢奥运会举行时间:”);sb.append(“8月8日晚8点”); // 在sb尾部追加"8月8日晚8点"字符串sb.insert(sb.length()-1,” 8月5日-21日”); //在sb尾部追加"8月5日-21日"字符串sb.replace(n, n+5,"第31届"); // 将字符串中"里约热内卢"替换为"第31届"System.out.println("字符串的长度为: "+ sb.length());// 输出字符串的长度sb.delete(12,25); // 删除字符串中从第12个字符开始到第25个字符为止的内容。
实验课程名称:Java语言程序设计A第二部分:实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)修改后代码如下:import java.util.*;class ExceptionDemo{public static void main(String[] args) {try {Scanner scanner = new Scanner(System.in);System.out.print("Enter a interger:");int number = scanner.nextInt();System.out.println("The number entered is:" + number);} catch (InputMismatchException e) {System.err.println("输入有误,请重新输入一个整型数据!");new ExceptionDemo().main(args);;}}}运行结果如下:教师签字__________第三部分结果与讨论(可加页)一、实验结果分析(包括数据处理、影响因素讨论、综合分析和结论等)首先运行题目中给出的代码,当输入的数据不是整形时,程序抛出InputMismatchException错误并终止,之后用try……catch捕捉并处理该错误,在catch块中输出错误提示并且重新调用main方法,已达到程序正常运行直达用户输入整数后才退出的目的。
实验中通过main函数的回调,实现了和使用循环处理一样的效果,也可以通过for循环或者do……while循环实现同样的效果,例如以下用for循环的实现:import java.util.*;class ExceptionDemo{public static void main(String[] args) {for (; ; ) {try {Scanner scanner = new Scanner(System.in);System.out.print("Enter a interger:");int number = scanner.nextInt();System.out.println("The number entered is:" + number);// break;} catch (Exception e) {System.err.println("输入有误,请重新输入一个整型数据!\n");}}}}运行效果为:二、小结、建议及体会编程的时候要多考虑一些影响因素,多思考几种实现方法,在各种方法中寻找最优的方案,同时,对于碰到的问题,不要忽略,要多多思考本质的原因,避免下次犯同样的错误。
《JAVA编程技术》实验指导书实验一Java基本语法练习、面向对象编程的基本技巧一、实验目的及要求1.掌握设置Java运行环境的方法2.掌握编写与运行Java程序的方法3.掌握Java基本数据类型、运算符与表达式、数组的使用方法4.掌握Java程序语法结构、掌握顺序结构、选择结构、循环结构的程序设计方法5.掌握运行Java程序的步骤6.掌握创建类和对象的方法7.掌握构造方法的执行过程8.掌握成员变量的定义方法,隐藏规则9.掌握成员方法的定义,重载和覆盖规则10.掌握抽象类的定义,抽象方法的定义,掌握接口的定义二、实验内容1.编辑一个简单的java程序。
输出一个字符串“Hello java”。
掌握两种编译运行的方法:第一种是在Eclipse环境中编辑、编译、运行。
第二种是在command窗口中使用javac和java命令来编译和运行Java程序。
重点掌握第一种方法,了解第二种方法。
2.编写一个名为PrintArguments的程序,打印从命令行输入的4个参数。
例如在命令行中输入java PrintArguments 10 20 30 40时,将打印出10 20 30403.编写一个程序,把变量n的初始值设置为2315,然后利用除法运算和取余运算把变量n的每一位数字都抽出来并显示,即输出2 3 1 5。
4.写出符合如下要求的程序,并运行。
第一,声明两个基本数据类型的数组A和数组B,数组类型为char、int、double均可,由同学任选。
要求运用键盘来为它们赋值。
第二,分别将这两个数组中的元素输出。
第三,用这两个数组中的元素做加法、减法运算,然后将结果保存在数组A 和数组B之中。
5.用循环语句编写一个程序,算出1000之内的全部素数。
6.输出杨辉三角,要求输出8行。
7.翻译密码。
原文由字母、数字以及其它符号组成。
现按照这样的规律将其转换为密码。
第一,对于字母,将其转换为字母表中其后的第六个符号。
若超出范围,则以26为基数取模。
附一、实验报告填写方法附1.1 实验开发环境1.硬件:Intel P42.4G/256M/40G PC机一套;2.软件:Windows XP+j2sdk1.5.0+JCreator Pro3.1.0+(MS Access 2000)附1.2实验过程要求1.在上课的同时,将每个实验预习的每个例题直接完成在实验指导书上;2.在实验之前,将实验要求的程序写在草稿本上;3.每次实验之前需要把实验指导书和写有程序的草稿纸带上,以备检查,否则不能进入实验室。
4.实验过程中,不能做与实验无关的事情(如:打游戏、看其他书籍),否则本次实验成绩记0分,在遇到问题的时候举手提问,同学之间交流的声音不可太大。
附1.3实验报告内容填写1.第1页:填写(1)实验目的、(2)实验要求2.第2页~第3页:填写(3)实验程序源代码3.第4页:填写(4)实验运行结果、(5)实验总结实验一:Java基础程序设计Java程序设计语言同大多数程序设计语言一样,具有一些基本特性。
本节实验主要练习Java编程语言的这些基本特性,如Java中的简单数据类型,运算符和表达式,这是学习Java语言必须经过的基础阶段。
掌握了本节实验所讲述的内容后,应该能够对Java程序的构成有一个基本的理解,能够灵活运用Java语言提供的各种数据类型和运算符。
学好Java语言必须具备扎实的语言基础,这对后续学习是很有必要的。
Java程序通过控制语句来执行程序流,完成一定的任务。
程序流是由若干个语句组成的,语句可以是单一的一条语句,也可以是用大括号{}括起来的一个复合语句。
Java中的控制语句主要有分支语句(if-else,switch).循环语句(while,do-while,for)与程序转移有关的跳转语句(break,continue,return)。
本节实验将学习如何控制程序的流程,使程序实现不同功能。
1.1实验目的:1.掌握Java语言的数据类型。
2.掌握Java语言的运算符和表达式。
实验指导四实验1:异常一、实验目的(1)理解异常处理。
二、实验任务(1)输入根据给定的Java Application程序,添加功能并写出运行结果。
(2)找出给定程序的错误,修改代码使其能编译运行,并写出运行结果。
(3)按要求填写Java Application程序,并写出运行结果。
三、实验内容1.为下面的Java Application程序,添加异常处理,并简要分析程序的运行结果。
public class RuntimeExceptionDemo01{public static void main(String args[]){String str = "123" ; // 定义字符串,全部由数字组成int temp = Integer.parseInt(str) ; // 将字符串变为int类型System.out.println(temp * temp) ; // 计算乘方}};运行结果:????2.找出给定程序的错误,修改代码使其能编译运行,并写出运行结果。
public class RuntimeExceptionDemo01{public static void main(String args[]){System.out.println(“程序运行开始”) ;Thread.sleep(30000) ;System.out.println(“程序运行结束”) ;}};运行结果:????3. 输入根据给定的Java Application程序,写出运行结果class MyException extends Exception{ // 自定义异常类,继承Exception类public MyException(String msg){super(msg) ; // 调用Exception类中有一个参数的构造方法,传递错误信息}};public class DefaultException{public static void main(String args[]){try{throw new MyException("自定义异常。
武汉工程大学计算机科学与工程学院实验报告[4]一、实验目的1)了解Java.awt包及Swing的新增特性。
2)了解Java系统图形用户界面的基本工作原理和界面设计的步骤。
3)了解图形用户界面的事件响应机制。
4)了解图形用户界面各种常用的基本组件的使用方法及其事件响应。
5)掌握Java常用组件的应用6)掌握图形用户界面各种布局策略的设计与使用二、实验要求1)创建一个简单的图形用户界面。
2)使用Java类库中提供的组件,并添加到图形用户界面中。
3)通过Java事件处理机制,实现与用户的交互信息。
4)练习使用布局管理器5)使用Java类库中提供的组件,并添加到图形用户界面中6)通过Java事件处理机制,实现与用户的交互信息三、实验内容对一个优秀的应用程序来说,良好的图形用户界面是必不可少的。
因为只有通过图形界面,用户才能够与程序友好的交互。
缺少良好的图形用户界面,将会给用户理解和应用程序带来很多不便。
创建一个完整的图形用户界面的应用程序大致流程如下:1)引用需要的包和类。
2)设置一个顶层的容器。
3)根据需要为容器设置布局管理器或使用默认布局管理器。
4)将组件添加到容器内,位置自行设计。
5)为响应事件的组件编写事件处理代码。
下面我们先建立一个简单的图形用户界面,然后通过合适的布局管理器,将各种常用组件添加到图形用户界面中,实现与用户的交互信息。
1. 创建简单的图形用户界面(1)创建简单的 Frame 框架在 AWT 库中,对应于框架的类是 Frame,在 Swing 库中,相应的类是 JFrame。
JFrame 类扩展了 Frame 类。
大部分 ATWT 组件在 Swing 中都有等价的组件,它们在表示形式上差一个“J”。
框架是一个容器,可以在这个容器中放入其他一些图形用户界面组件,如按钮、菜单等,从而组成一个功能完善的程序。
下面的例子是建立一个 Frame 框架,通过这个例子学习如何创建一个简单的图形用户界面。
java实验四对象和类(抽象类、接口与包) 实验四对象和类(抽象类、接口与包) 一、实验目的1、熟练掌握抽象类abstract的概念。
2、熟练掌握接口interface的概念。
3、熟练包package的概念以及编译运行的方法。
4、熟练掌握内部类inner class的概念。
5、熟练掌握递归的概念。
6、理解面向对象的程序设计方法。
二、实验内容与要求1(编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应用程序,要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的特点。
程序如下:abstract class Geometric{ //定义抽象类abstract double getPerimter();abstract double getArea(); }interface MY{ //定义接口float getarea();float getperimter();}class sanjiaoxing extends Geometric{ //三角形类继承抽象类private float a;private float b;private float c;sanjiaoxing(float x1,float x2,float x3){a=x1;b=x2;c=x3;}double getPerimter(){return a+b+c;}double getArea(){float p=(a+b+c)/2;return Math.sqrt(p*(p-a)*(p-b)*(p-c));}}class yuanxing extends Geometric{ //圆类继承抽象类private float radius;yuanxing(float a){radius=a;}double getPerimter(){double p;p=2*3.14f*radius;return p;}double getArea(){return 3.14f*radius*radius;}}class juxing implements MY{ //矩形类实现接口private float height;private float width;juxing(float a,float b){height=a;width=b;}public float getperimter(){return 2*(width+height);}public float getarea(){return width*height;}}class abc{public static void main(String args[]){ sanjiaoxing obj1=new sanjiaoxing(3,4,5); System.out.println("当三角形三边是3,4,5时:"); System.out.println("边长是:"+obj1.getPerimter()); System.out.println("面积是:"+obj1.getArea()); yuanxing obj2=new yuanxing(4);System.out.println("当圆的半径是4时:");System.out.println("周长是:"+obj2.getPerimter());System.out.println("面积是:"+obj2.getArea());juxing obj3=new juxing(3,4);System.out.println("当矩形长和宽是3,4时:");System.out.println("周长是:"+obj3.getperimter());System.out.println("面积是:"+obj3.getarea());}}结果如下:, 出现的问题1:需要定义抽象类和接口,并用三角形、矩形和圆形来实现里边定义的方法。
Java实验四-实验报告实验四类和对象;类的继承和派生;多态性;接口;构造器应用一、实验目的1、掌握类与对象的关系;2、掌握类的定义;3、掌握对象的声明及使用;4、掌握构造方法的概念及调用时机;5、掌握构造方法的重载;6、掌握匿名对象的使用。
二、实验学时2学时三、实验类型验证性实验四、实验需求1、硬件每位学生配备计算机一台2、软件Windows 7操作系统,JDK,eclipse,MySQL 3、网络无4、工具无五、实验理论与预备知识1、类与对象的关系;2、类的定义;3、对象的声明及使用;4、构造方法的概念及调用时机;5、构造方法的重载;6、匿名对象的使用。
六、实验内容与结果1、编写一个应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
//三角形类class Trangle {double sidea,sideb,sidec,sjxzc,sjxmj;boolean boo;public Trangle(double a,double b,double c){sidea=a;sideb=b;sidec=c;if(a+b>c && a+c>b && b+c>a){boo=true;}else{boo=false;}}double getlength(){double length;length=sidea+sideb+sidec;return length;}public double getarea(){if(boo){double area;double p=(sidea+sideb+sidec)/2.0;area=Math.sqrt(p*(p-sidea)*(p-sideb)*(p-sidec)); return area;}else{System.out.println("不是一个三角形,不能计算面积"); return 0;}}}//梯形类class Laderdouble txsd,txxd,txhigh,txarea;Lader(double a,double b,double c){txsd=a;txxd=b;txhigh=c;}double getarea(){double area;area=(txsd+txxd)*txhigh/2.0; return area;}}//圆形类class Circle{double ybj,yzc,yarea;Circle(double r){ybj=r;}double getarea(){double area;area=3.14*ybj*ybj;return area;}double getlength(){double length;length=2*3.14*ybj;return length;}void setybj(double newybj) {ybj=newybj;}double getybj(){return ybj;}}public class one {public static void main (String args[]){double length,area;Circle circle=new Circle(5);Trangle trangle=new Trangle(3,4,5); Lader lader=new Lader(3,4,6);length=circle.getlength();System.out.println("圆的周长:"+length); area=circle.getarea();System.out.println("圆的面积:"+area); length=trangle.getlength();System.out.println("三角形的周长:"+length); area=trangle.getarea();System.out.println("三角形的面积:"+area); area=lader.getarea();System.out.println("梯形的面积:"+area); trangle=new Trangle(1,1,3);area=trangle.getarea();System.out.println("三角形的面积:"+area); length=trangle.getlength();System.out.println("三角形的周长:"+length); }}2、编写一个公司员工类。
java 实训指导书4java实训指导书4培训计划名称:使用例外情况1、实训目的1)了解Java异常的基础,学习处理常见疾病和异常的Java程序。
2)掌握异常处理机制的应用。
2.学时8学时3。
培训条件硬件:计算机软件:winxp操作系统,eclipse开发平台。
地点:计算机软件实验室4.培训内容1)编写一个类,在main()的try语句块里抛出一个exception对象,传递一个字符串参数给exception的构造函数。
在catch子句里捕获此异常对象,并打印此字符串参数。
添加一个finally子句,打印一条信息以证明这里确实得到了执行。
2)使用extends 关键字建立一个自定义异常类。
为这个类写一个接受字符串参数的构造函数,把此参数保存在对象内部的字符串引用中,写一个方法打印此字符串。
写一个try??catch子句,对这个新异常进行测试。
3)定义一个对象引用并将其初始化为null。
尝试使用此引用调用该方法。
打这个电话试试?抓住句子中的例外。
4)编写能产生arrayindexoutofboundsexception异常的代码。
5、实训步骤任务一:首先,编写一个程序来处理异常,使程序更加完善。
问题1:编写一个程序,其功能是从命令行输入一个整数字符串,然后将该整数字符串转换为整数。
输入数据可能具有以下格式:1234512345123zxc456。
捕获并处理此异常。
解析:程序可以通过命令行输入字符串来生成IOException,因此程序使用catch(IOException E)来捕获可能的异常并输出提示信息。
将字符串转换为整数时,可能会生成numberformatexception类型的异常。
该程序使用catch(numberformatexceptionne)捕捉这个可能的异常,并提示用户输入格式错误。
操作步骤如下:1)编写程序,参考程序如下:importjava.io.*;PublicClassUseCxeption{publicstaticvoidmain(stringargs[]){系统出来Println(“请输入一个整数字符串”);试试看{bufferedreaderin=newbufferedreader(newimputstreamreader(system.in));inta=integ er.parseint(in.readline());系统出来Println(“您输入的整数是:“+a”);}catch(ioexceptione){系统出来println(“ioerror”);}catch(numberformateceptionne){sy stem.out.println(“您输入的不是一个整数字符串”):}}}2)调试程序查看程序异常并处理异常。
实验四字符串操作一实验目的1.掌握字符串的处理方法。
2.掌握String和StringBuffer的区别。
3. 熟悉文件处理及输入输出流的相关方法。
二知识要点1.String类(1)创建String类对象的两种方式。
(2)String类创建的字符串对象的内容不能改变。
(3)String类的常见方法,见表4-1。
方法功能boolean equals(Object obj) 当前串与参数串的内容进行比较boolean equalsIgnoreCase(String s2)忽略字母的大小写,比较当前串和参数串的内容int length()返回字符串长度String trim()返回去除前导空格和尾部空格的字符串int indexOf(int ch, int fromIndex))从formIndex位置开始往后查找字符串中的字符ch的首次出现位置。
int indexOf(String s, int fromIndex))从formIndex位置开始往后查找字符串中的子串s的首次出现位置。
char charAt(int index) 从串中获取指定位置的字符String substring(int begin, int end)根据始末位置从串中获取子串String[] split(String regex) 按照分隔符将串分成若干子串String replace(char ch1,char ch2) 将字符串中所有ch1字符换为ch2 String toLowerCase() 将字符串中的所有大写字母改成小写字母String toUpperCase() 将字符串中的所有小写字母改成大写字母表4-1 String类的常见方法2. StringBuffer类(1)使用构造函数创建StringBuffer对象(2)StringBuffer类创建的字符串可以被修改,可以对串的内容进行增、删、改操作。
(3)StringBuffer的常用方法,见表4-2。
实验指导书实验项目:实验三、类和对象实验目的:掌握类封装对象的属性和功能。
实验内容:定义一个Triangle类,类中定义一个构造方法,构造方法中使用方法的参数来初始化成员变量,并判断是否能构成三角形,定义一个求周长的方法,定义一个求面积的方法。
定义一个TestTriangle类,用类创建对象,并调用这两个方法输出结果。
实验步骤:1.安装JDK(查看机器是否已经安装)2. 查看并设置环境变量。
java_homepath(必须设置)classpath3.编写源程序TestTriangle.java4.编译javac TestTriangle.java(在源程序所在目录下进行)5.运行java TestTriangle(在源程序所在目录下进行)6.部分程序class Triangle{double sideA,sideB,sideC,area,length;boolean boo;/*在此处定义一个构造方法,在方法中将方法参数赋值给三个成员变量,并判断是否能构成三角形,给boo赋值*/public Triangle(double a,double b,double c){sideA=a;sideB=b;sideC=c;if() boo=true;else boo=false;}double getLength(){ if(boo){//计算周长}length=sideA+sideB+sideC;else{//输出不是三角形,不能计算周长}}public double getArea(){if(boo){//计算面积}else{//输出不是三角形,不能计算面积}}Public class TestTriangle{public static void main(String[] args){Triangle t=new Triangle(3,4,5);//可改变参数的值//输出周长System.out.print(getLength());//输出面积}}/*计算面积方法,若三边是a,b,c,半周长是p面积=Math.sqrt(p*(p-a)*(p-b)*(p-c));*/实验指导书实验项目:实验三、类和对象实验目的:掌握类封装对象的属性和功能,掌握成员变量,成员方法的使用,static的用法,构造方法的使用,成员的访问权限。
实验4 继承与多态一、实验目的与要求1、掌握类的继承关系和派生方法;2、掌握多态的概念与使用;3、掌握接口的定义与使用;二、实验内容继承与多态:编写一个类SuperClass,有成员数据和成员方法,另一个SubClass 为SuperClass的子类,编写一个接口,增加与SuperClass同名成员数据和成员方法,增加和SuperClass成员异名的成员数据和成员方法;在主方法里面调用这些成员方法,并输出这些成员数据。
三、实验器材微机+windows操作系统+eclipse四、实验步骤package shiyansi;public interface study {public abstract void printmessage();}package shiyansi;public class Surperclass {protected int x=2;protected String y="our university is very beautiful";public void set(int xx,String yy){x=xx;y=yy;}public void show(){System.out.println("now we use superclass"+"\tx="+x);}package shiyansi;public class Subclass extends Surperclass implements study { protected int x=5;protected String z;public void set(int xx,String zz){x=xx;z=zz;}public void show(){System.out.println("this is subclass"+"\tx="+x);}public void printmessage(){System.out.println("subclass member are "+"\tx="+x+"\ty="+y+"\tz="+z);}}package shiyansi;public class test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSurperclass sa=new Surperclass();Subclass sb=new Subclass();///继承System.out.println("继承测试");sa.show();sb.show();sa.set(200, "super is father class");sb.set(300, "sub is son class");sb.printmessage();//////多态System.out.println("多态测试");sa=new Subclass();sa.show();study st=new Subclass();st.printmessage();}}五、实验结果继承测试now we use superclass x=2this is subclass x=5subclass member are x=300 y=our university is very beautiful z=sub is son class多态测试this is subclass x=5subclass member are x=5 y=our university is very beautiful z=null六、实验小结1、通过这个实验加深了对继承的理解:不同访问控制的超类成员在影响能否在子类中被继承。
实验四类与对象(二)一、实验目的1、理解引用变量与对象实例之间的关系与区别;2、理解方法调用时引用类型参数的传递过程;3、理解Java语言中包的概念以及package、import语句的使用;4、掌握private、protected、public等关键的使用场合与使用方法;5、掌握对象组合的方式与方法;6、掌握基本数据类型包装类的使用方法。
二、实验要求1、根据实验步骤中提出的要求,使用记事本编写相应的Java程序;2、使用JDK中提供的javac以及java命令编译、运行自己所编写的Java程序;3、根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果;4、记录实验中遇到的各类问题并以及解决办法。
三、实验步骤1、对象实例的引用(1)采用记事本编写下面所给的Java程序并保存为Card.java;class Card{int id;double balance;Card(int id,double balance){this.id=id;this.balance=balance;}void withdraw(double amount){balance-=amount;}void deposit(double amount){balance+=amount;}void print(){System.out.printf("Card id:%10d \nBalance: $%8.2f",id,balance);}}(2)采用记事本编写下面所给的Java程序并保存为CardTest.java;class CardTest{public static void main(String args[]){Card a=new Card(1,500);Card b=open(2);transfer(a,b,120);a.print();b.print();}Card open(int id){return new Card(id,0);}static void transfer(Card from ,Card to ,double amount){from.withdraw(amount);to.deposit(amount);Card temp=from;from=to;to=temp;}}(3)改正程序中的错误,编译并运行CircleTest查看结果。
淮海工学院计算机工程学院实验报告书
课程名:《Web应用开发技术》
题目:___java实验_4_____________
班级:
学号:
姓名:
实验4Jav a面向对象编程初步
实验目的
熟悉面向对象基本概念;掌握Java中对象声明、创建、访问、参数传值、static、this、常量定义等基本语法;进一步熟悉Java程序结构;理解掌握其他Java基本概念类声明、各种变量、方法、构造方法、方法重载等。
实验环境
操作系统:windows 2000 或Window XP
集成开发环境:JDK1.5及以上版本
实验学时
2学时,必做实验。
实验内容
(1)熟悉Java面向对象基本概念、语法
(2)编制运行Java程序实例1
(3)编制运行Java程序实例2
实验步骤
(1)编写并运行如下程序
class Point
{
int x,y;
static int z;
static final double PI=3.1415926;
Point(int a,int b)
{
x=a;
y=b;
}
Point()
{
this(1,1);
}
static void output()
{
System.out.println("output() is called");
System.out.println("z="+z);
}
void output(int x,int y)
{
this.x=x;
this.y=y;
System.out.println("x="+x);
System.out.println("y="+y);
}
public static void main(String[] args)
{
System.out.println("static final double PI="+Point.PI);
Point pt;
pt=new Point(3,3);
Point.output();
pt.output(10,10);
Point pt1=new Point();
Point pt2=new Point(6,6);
pt1.z=5;
pt2.z=6;
System.out.println("pt1.x="+pt1.x);
System.out.println("pt2.x="+pt2.x);
System.out.println("pt1.y="+pt1.y);
System.out.println("pt2.y="+pt2.y);
System.out.println("pt1.z="+pt1.z);
System.out.println("pt2.z="+pt2.z);
}
}
(2)编写并运行教材第4章P52页例4.5
class People
{
int money;
void setMoney(int n)
{
money = n;
}
}
class A
{
void f(double y, People p)
{
y = y+1;
p.setMoney(100);
System.out.println("参数y的值是:"+y);
System.out.println("参数对象p的money是:"+p.money);
}
}
public class Exa
{
public static void main(String args[])
{
double y = 0.8;
people zhang = new People();
zhang.setMoney(8888);
A a =new A();
System.out.println("在方法f被调用之前对象zhang的money是:"+zhang.money+"y的值是:"+y);
a.f(y,zhang);
System.out.println("在方法f被调用之后main方法中y的值仍然是:"+y);
System.out.println("在方法f杯调用之后main方法中对象zhang的money是:"+zhang.money);
}
}
分析与思考
(1)Java基本概念,如:类声明、各种变量、方法、构造方法、方法重载等
类声明:class+类名。
各种变量:整型,浮点型,字符型,逻辑类型;引用类型:数组,对象,接口。
方法:方法头和方法体构成。
构造方法:是类中的一种特殊方法,当程序用类创建对象时需使用它的构造方法。
类中的构造方法的名字必须与它所在的类的名字完全相同,而且没有类型。
(2)Java中对象声明、创建、访问、参数传值、static、this、常量定义等基本语法。