目录
目的
掌握Java程序的基本结构——类,建立面向对象的思想,认识封装的理论意义。
实验内容
(第一部分)
1. 设计并编写自己感兴趣的类,例如: MyDate类,为类定义对象变量、构造器、操作对象变量的方法。
2. 实现Test类实现事务处理流程,例如:TestMyDate()的main()方法,实现对MyDate类型对象的创建、调用对象方法,实现对象状态的改变。
3. 为自己设计的类提供print()或toString()、equals()、hashCode()等方法。
(第二部分)
1. 参考MyPoint.Java对于点数据结构的定义(两个整数[x,y]),及其toString()方法,和通过字符串连接运算使输出点形式为
start point is start[x,y]
end point is end[x,y]
的实现方式,实现自设计类。
我的分析
1.设计思想
对于第一部分的内容,创建一个MyDate的类函数,自行定义一个操作,我的操作是输入两个年月日并判断两个是不是同一天,如果不是,第二次输入的日期是比第一天早还是晚,只需在主函数中输入年月日,调用MyDate中的print函数展示日期,在进行日期的比较最后输出结果即可。
对于第二部分的内容,我创建了一个Mystudent的Java类,里面用于储存主函数会重复调用的名字、科目、成绩。因为要对其经行修改,所以我就没有将变量设置为private私有的类型了。然后分别对三个变量经行赋值,在让用户判断是否要修改成绩,若要修改的话就输入要修改的名字、修改后的成绩,然后对这个stu.scor重新赋值,最后输出。
代码及分析
第一部分MyDate类代码:
MyDate构造器:
Print()方法:
Compare()方法:
第二部分Mystudent类代码:
ToString()方法:
3.主要代码段说明(附代码)
第一部分主要代码:
输入第一个年月日和第二个年月日,在屏幕上展示,并判断是否是同一天,如果不是判断第二个日期比第一个日期早还是晚。
、
第二部分主要代码:
对每个stu的姓名、科目和分数赋值,在屏幕上展示,让用户判断是否对成绩经行修改。
修改操作:输入要修改人的姓名若存在此人可对其成绩经行修改,若姓名不匹配则显示查无此人,次操作不断循环直至用户输入0终止操作。
采用toString方法对姓名、科目、成绩经行输出。
运行结果
第一部分运行结果:
第二部分运行结果:
总结
1.代码调试中产生的错误及原因分析
错误:对equals()函数的使用,相同的变量也输出false;
原因,两个变量需是同一类的变量,即类型需要相同才会返回true。
2.实验中遇到的设计问题及解决方法
感觉实验里面挺多个实验内容我没有完成的,比如实验第二部分对于Mypoint.java我就实现的不是很好。我自行查阅了csdn,发现有些知识好像老师还没有教,而我对其 使用也不熟练,甚至是不会使用,所以实验完成的不是特别好,但我已经尽力完成了。
3.实验体会和收获。
通过设计和编写自己感兴趣的类,我深入理解了面向对象编程的概念和原则。在这个实验中,我创建了一个名为MyDate的类,用于表示日期对象。通过为该类定义对象变量、构造器和操作对象变量的方法,我学会了如何在类中组织数据和行为。
在测试类Test中,我实现了对MyDate类型对象的创建和调用对象方法,以及对象状态的改变。这让我更好地理解了如何使用类的实例,并且能够通过方法调用来操作对象的属性和行为。
另外,为自己设计的类提供print()或toString()、equals()、hashCode()等方法也是实验的一部分。这些方法的实现使得我们可以方便地输出对象的信息、比较对象的相等性以及生成对象的哈希码。通过实现这些方法,我加深了对Java中常用方法的理解,并且掌握了如何自定义类的特定行为。
总的来说,这个实验让我更深入地了解了面向对象编程的概念和技术。我学会了如何设计和编写自己的类,并通过测试类来验证类的功能。同时,我也加强了对Java中常用方法的理解和掌握。这些经验对我今后的编程工作将会非常有帮助。