当前位置:文档之家› JAVA实验报告四(实现String类)

JAVA实验报告四(实现String类)

JA V A实验报告实验四运用JavaFx实现时钟动画班级:计算机科学与技术1306学号: 00姓名:王雨思指导教师:鲁鸣鸣2014 年 12 月 1 日目录一.概述 (6)二.总体方案设计 (7)三.详细设计 (8)四.程序的调试与运行结果说明 (9)五.课程设计总结 (10)六.后记 (11)七.附录 (12)参考文献 (13)一概述1.课程设计的目的了解和掌握String类的实现原理2.课程设计的要求基于ArrayList实现可以深度复制(Deep Copy)的栈结构。

1.首先用ArrayList实现栈结构2.接着将第1步实现的栈通过Clonable接口实现深度复制3.课程设计的主要设计思想基于ArrayList实现可以深度复制(Deep Copy)的栈结构。

二总体方案设计编写程序实现MyString类的下列操作:public MyString(char[] chars);public char charAt(int index);public int length();public MyString substring(int begin, int end);public MyString toLowerCase();public boolean equals(MyString s);public static MyString valueOf(int i);public int compare(String s);public MyString substring(int begin);public MyString toUpperCase();public char[] toChars();public static MyString valueOf(boolean b);定义一个MyString类一一实现上述定义的函数,并对MyString类进行简单的测试。

三详细设计本实验主要包含两个类public class MyString //新字符串类public class test //测试类MyString类的UML图为:-stringChar:char[] //私有字符串数组+MyString(char[] chars) //构造函数+showMyString():void //显示字符串+charAt(index:int):char //返回指定位置的char值+length():int //返回字符串长度+substring(begin:int,end:int):MyString //将字符串begin——end位置的字符换成新的字符串+toLowerCase():MyString //将所有字符串都换成小写+equals(s:MyString):boolean //判断两个字符串是否相等+static valueOf(int i):MyString //返回表示int值的字符串表示+compare(String s):int //比较字符串大小+substring(begin:int):MyString //求冲begin开始的子串+toUpperCase():MyString //将字符串小写换成大写+toChars():char[] //返回字符串数组+static valueOf(b:boolean):MyString //将b换成字符串四程序的调试与运行结果说明运行结果:五课程设计总结(1)运用实验的方法设计和实现,既是对刚刚学过的java课程的复习,又是一次实战演练,从而提高自己的分析问题,解决问题以及动手的能力;(2)通过整个程序的设计与实现进一步加深了对 Java这门语言的理解,巩固学过的知识,为以后进一步的学习打下良好的基础。

(3)在这次java编程实现中,通过对java所学到知识的运用,让我学到了很多很多的编程实践知识,大大提高了我对java编程和课本知识的理解。

本次实验是对String类型的重写,目的是加强我们对java中Sting类型的理解。

虽然String类型在java作为一个基本类型,java已经提供了很成熟的操作函数,但是这次实验的目的不是让我们去如何改进String类型,而是让我们更加深入的了解String类型的实现原理。

困难及解决途径在上机实习完成课程设计的过程中,遇到了不少的问题,一是有一些东西自己没有学过,而是在编写的过程中由于思路不清晰以及自己的粗心给自己制造了一些麻烦,还有就是会产生一些异常。

但是在经过自己和老师、同学的交流,以及自己查阅资料针对性的对不懂得问题进行查询,自己没有学过但是又要用到得逐渐的得到解决,再经过自己反复的理清思路和反复的检查由思路不清晰和粗心带来的麻烦也慢慢得到了解决。

六后记首先,java作为一种计算机语言,它具备语言的特性,就是我们在课堂上认真听取了老师的指导之后,还得自己回去认真看书写程序,并且上机实习才能发现问题及时解决问题。

就像我们学习语言一样要通过和同学之间的交流才能提高我们的实际应用能力。

所以,我们在自己认真刻苦学习的同时,一定要多和同学老师交流,从他们那里吸取好的思维方式、好的学习方法。

在上机实习的时候,我现在回顾自己一学期的学习,觉得首先应该熟悉java 的概念,明白程序开发的基本思想,熟悉开发环境之后马上进行自主学习,自己学习的步伐千万不能落于老师讲课授课的速度。

如果这样的话,我们很可能处于一种被动学习的劣势,失去对java学习的热情,以至于恶性循环,到最终的无可救药。

在平时的训练和刚刚结束的上机实习中我深刻的体会到了学习好java我们就要一定要掌握好java的基本语句,包括条件语句和循环语句。

这些就是我们编写程序这棵大树的必要组成枝叶。

建立起关键语句的之后,我们才能有更强的功能和实用性。

这次实验主要是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们本学期学习的重点知识。

在做题的过程中让我们把这些知识复习了一遍,可以我强化了知识。

因为随着课程的加重,发现自己动手能力越来越若,在事件处理和图形用户接口的使用中,出现了知识点模棱两可的情况。

当然,任何的困难挫折在不断地努力中都会变得脆弱,只是暂时的阴影。

最后我想说不会写java程序不要紧,多在网上找资料和文章学习,多看看程序员的博客、与导师沟通学习,总会找到你需要的材料,书山有路勤为径,学海无涯苦作舟。

通过这四次实验,大大提高了我对java编程的理解,调高了我的逻辑思维能力。

让我养成了独立思考的好习惯!在以后的日子里,我要不断地学习这个博大精深的语言,继续不断的深化自己的实际动手能力。

七附录package a001;public class test {public static void main(String[] args){char[] tschar1={'j','a','v','a'};char[] tschar2={'S','T','R','I','N','G'};String s1="STRING";MyString string1=new MyString(tschar1);MyString string2=new MyString(tschar2);MyString a;"string1="); ();"string2="); ();"the length of string1 "+());"the length of string2 "+());"将string2 换成小写 ");a=();();"将string1换成大写 ");a=();();"比较string1和s1大小 "+(s1));"求string2的子串 :(3)");a=(3);();"求string2的子串:(3, 5) ");a=(3, 5);();"判断string1,string2是否相等"+(string2));"(false)= ");a=(false);();"(1) ");a=(1);();}}public class MyString {private char[] stringChar;public MyString(char[] chars) //构造函数{stringChar=chars;}public void showMyString() //显示字符串{int a=0;for(a=0;a< {}}public char charAt(int index) //返回指定位置的char值{return stringChar[index-1];}public int length() //返回字符串长度{return ;}public MyString substring(int begin, int end) //将字符串begin——end位置的字符换成新的字符串{char[] string=new char[end-begin+1];int a=0;int b=0;for(a=begin-1;a<end;a++){string[b]=[a];b++;}MyString newString=new MyString(string);return newString;}public MyString toLowerCase() //将所有字符串都换成小写{int a=0;int b=((int)'a'-(int)'A'); //大小写之间的差值 (a>A)char[] newString=new char[(int)()];for(a=0;a<();a++){if((int)stringChar[a]>=(int)'A'&&(int)stringChar[a]<=(int)'Z'){newString[a]=(char)((int)[a]+b);}else{newString[a]=stringChar[a];}}MyString string0=new MyString(newString);return string0;}public boolean equals(MyString s) //判断两个字符串是否相等{int a=0;for(a=1;a<=();a++){if(a)!=(a)){return false;}}return true;}public static MyString valueOf(int i) //返回表示int值的字符串表示{char[] newchar=new char[1];newchar[0]=(char)(i+(int)'0');MyString newString=new MyString(newchar);return newString;}public int compare(String s) //比较字符串大小{int a=0;for(a=1;a<=();a++){if((int)stringChar[a-1]>(int)(a)){return 1; //大于s}if((int)(a)>(int)stringChar[a-1]){return -1; //小于s}}return 0; //等于s}public MyString substring(int begin) //求冲begin开始的子窜(begin《this。

相关主题