JAVA实验报告四实现String类Word文件下载.docx
《JAVA实验报告四实现String类Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA实验报告四实现String类Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
2.课程设计的要求
基于ArrayList实现可以深度复制(DeepCopy)的栈结构。
1.首先用ArrayList实现栈结构
2.接着将第1步实现的栈通过Clonable接口实现深度复制
3.课程设计的主要设计思想
二总体方案设计
编写程序实现MyString类的下列操作:
publicMyString(char[]chars);
publiccharcharAt(intindex);
publicintlength();
publicMyStringsubstring(intbegin,intend);
publicMyStringtoLowerCase();
publicbooleanequals(MyStrings);
publicstaticMyStringvalueOf(inti);
publicintcompare(Strings);
publicMyStringsubstring(intbegin);
publicMyStringtoUpperCase();
publicchar[]toChars();
—3
publicstaticMyStringvalueOf(booleanb);
定义一个MyString类一一实现上述定义的函数,并对MyString类进
行简单的测试。
三详细设计
本实验主要包含两个类
publicclassMyString
//
新字符串类
publicclasstest
测试类
MyString类的UML图为:
-stringChar:
char[]//
私有字符串数组
+MyString(char[]chars)//
构造函数
+showMyString()
:
void
//显示字符串
+charAt(index:
int):
char//
返回指定位置的char值
+length():
int//
返回字符串长度
+substring(begin:
int,end:
MyString//
将字符串begin——end位置的字
符换成新的字符串
+toLowerCase():
将所有字符串都换成小写
+equals(s:
MyString):
boolean//
判断两个字符串是否相等
+staticvalueOf(inti):
返回表示int值的字符串表示
+compare(Strings):
比较字符串大小
求冲begin开始的子串
+toUpperCase():
MyString
将字符串小写换成大写
+toChars():
char[]
返回字符串数组
+staticvalueOf(b:
boolean):
将b换成字符串
—4
四程序的调试与运行结果说明
运行结果:
五课程设计总结
(1)运用实验的方法设计和实现,既是对刚刚学过的java课程的复习,又是一次实战演练,从而提高自己的分析问题,解决问题以及动手的能力;
(2)通过整个程序的设计与实现进一步加深了对Java这门语言的理解,巩固学过的知识,为以后进一步的学习打下良好的基础。
(3)在这次java编程实现中,通过对java所学到知识的运用,让我学到了
—5
很多很多的编程实践知识,大大提高了我对java编程和课本知识的理解。
本次实验是对String类型的重写,目的是加强我们对java中Sting类
型的理解。
虽然String类型在java作为一个基本类型,java已经提供了很成
熟的操作函数,但是这次实验的目的不是让我们去如何改进String类型,而是
让我们更加深入的了解String类型的实现原理。
困难及解决途径
在上机实习完成课程设计的过程中,遇到了不少的问题,一是有一些东西自己没有学过,而是在编写的过程中由于思路不清晰以及自己的粗心给自己制造了一些麻烦,还有就是会产生一些异常。
但是在经过自己和老师、同学的交流,以及自己查阅资料针对性的对不懂得问题进行查询,自己没有学过但是又要用到得逐渐的得到解决,再经过自己反复的理清思路和反复的检查由思路不清晰和粗心带来的麻烦也慢慢得到了解决。
六后记
首先,java作为一种计算机语言,它具备语言的特性,就是我们在课堂上认真听取了老师的指导之后,还得自己回去认真看书写程序,并且上机实习才能发现问题及时解决问题。
就像我们学习语言一样要通过和同学之间的交流才能提高我们的实际应用能力。
所以,我们在自己认真刻苦学习的同时,一定要多和同学老师交流,从他们那里吸取好的思维方式、好的学习方法。
在上机实习的时候,我现在回顾自己一学期的学习,觉得首先应该熟悉java的概念,明白程序开发的基本思想,熟悉开发环境之后马上进行自主学习,自
己学习的步伐千万不能落于老师讲课授课的速度。
如果这样的话,我们很可能处于一种被动学习的劣势,失去对java学习的热情,以至于恶性循环,到最终的无可救药。
在平时的训练和刚刚结束的上机实习中我深刻的体会到了学习好java我们就要一定要掌握好java的基本语句,包括条件语句和循环语句。
这些就是我们
—6
编写程序这棵大树的必要组成枝叶。
建立起关键语句的之后,我们才能有更强的功能和实用性。
这次实验主要是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们本学期学习的重点知识。
在做题的过程中让我们把这些知识复习了一遍,可以我强化了知识。
因为随着课程的加重,发现自己动手能力越来越若,在事件处理和图形用户接口的使用中,出现了知识点模棱两可的情况。
当然,任何的困难挫折在不断地努力中都会变得脆弱,只是暂时的阴影。
最后我想说不会写java程序不要紧,多在网上找资料和文章学习,多看看程序员的博客、与导师沟通学习,总会找到你需要的材料,书山有路勤为径,学海无涯苦作舟。
通过这四次实验,大大提高了我对java编程的理解,调高了我的逻辑思维能力。
让我养成了独立思考的好习惯!
在以后的日子里,我要不断地学习这个博大精深的语言,继续不断的深化自己的实际动手能力。
七附录
package
a001;
public
class
test{
static
main(String[]
args)
{
char
[]
tschar1
={
'
j'
'
a'
v'
};
tschar2
S'
T'
R'
I'
N'
G'
String
s1="
STRING"
;
string1
=newMyString(
);
string2
a;
System.
out
.println(
"
string1="
.showMyString();
string2="
thelengthofstring1"
+string1
.length());
thelengthofstring2"
+string2
将string2
换成小写"
a=string2
.toLowerCase();
a.showMyString();
将string1
换成大写"
a=string1
.toUpperCase();
—7
比较string1
和s1大小"
+string1.compare(
s1));
求string2
的子串:
string2.substring(3)"
.substring(3);
string2.substring(3,5)"
.substring(3,5);
判断string1
,string2
是否相等
+string1.equals(string2));
MyString.valueof(false)="
a=MyString.valueOf
(false);
MyString.valueof
(1)"
a=MyString.
valueOf
(1);
}
publicclassMyString{
privatechar[]stringChar;
publicMyString(char[]chars)//构造函数
stringChar=chars;
publicvoidshowMyString()//显示字符串
inta=0;
for(a=0;
a<
this.stringChar.length;
a++)
System.out.print(this.stringChar[a]);
System.out.println();
publiccharcharAt(intindex)//返回指定位置的char值
returnstringChar[index-1];
publicintlength()//返回字符串长度
returnstringChar.length;
—8
publicMyStringsubstring(intbegin,intend)//将字符串begin——end位
置的字符换成新的字符串
char[]string=newchar[end-begin+1];
intb=0;
for(a=begin-1;
end;
a++)
string[b]=this.stringChar[a];
b++;
MyStringnewString=newMyString(string);
returnnewString;
publicMyStringtoLowerCase()//将所有字符串都换成小写
intb=((int)'
-(int)'
A'
);
//大小写之间的差值(a>
A)
char[]newString=newchar[(int)this.length()];
this.length();
if((int)stringChar[a]>
=(int)'
&
&
(int)stringChar[a]<
Z'
)
newString[a]=(char)((int)this.stringChar[a]+b);
else
newString[a]=stringChar[a];
MyStringstring0=newMyString(newString);
returnstring0;
publicbooleanequals(MyStrings)//判断两个字符串是否相等
for(a=1;
=s.length();
if(s.charAt(a)!
=this.charAt(a))
{returnfalse;
returntrue;
publicstaticMyStringvalueOf(inti)//返回表示int值的字符串表示
—9
char[]newchar=newchar[1];
newchar[0]=(char)(i+(int)'
0'
MyStringnewString=newMyString(newchar);
publicintcompare(Strings)//比较字符串大小
if((int)stringChar[a-1]>
(int)s.charAt(a))
return1;
//大于s
if((int)s.charAt(a)>
(int)stringChar[a-1])
return-1;
//小于s
return0;
//等于s
publicMyStringsubstring(intbegin)//求冲begin开始的子窜(begin《this。
length())
char[]newchar=newchar[1+this.length()-begin];
=this.length()-begin;
newchar[a]=stringChar[a+begin-1];
publicMyStringtoUpperCase()//将字符串小写换成大写
intb=(int)'
;
z'
newString[a]=(char)((int)stringChar[a]-b);
—10
publicchar[]toChars()//返回字符串数组
returnthis.stringChar;
publicstaticMyStringvalueOf(booleanb)//将b换成字符串
if(b)
char[]newchar={'
t'
'
r'
u'
e'
};
f'
l'
s'
参考文献
[1]Java语言程序设计郭克华段桂华清华大学出版社
—11