Java教程

面向对象程序设计--(7-10月)学习总结

本文主要是介绍面向对象程序设计--(7-10月)学习总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
21201310-寇家瑞 1.前言:期中考试、实验的知识点、题量、难度等情况 1)期中考试已经考完有两周时间。考的不理想,在时间太短的情况下很多知识不能系统的运用起来,考完后对题目是有进一步思考的 ,发现很多细节在考试的时候都没有考虑到。这种情况的发生说明我需要更细致的学习。   2)第一次实验是学生信息录入后再显示学生的成绩,主要练习我们对于类的构造,对象的构造与使用的考察。除开这些还有方法的调用、参数传递的使用的考察。在实验中,要用到循环结构,控制结构以及还要练习数据的输入与输出。而这第一次实验也很有针对性的让我们练习使用了工具对代码进行跟踪调试。为我们后面写实验题目奠定的一个基础。   3)第二次实验考察的是Java实验的经典题目农夫过河,考察我们掌握类与对象的基本概念,类的声明、创建与使用方法、类的构造方法的定义和使用方法。以及理解类变量、类方法与实例变量、实例方法的区别。最重要的是理解Java语言中包的概念以及package、import语句的使用。题目本身是很常见思考问题,用编程语言实现可以照着平时的思维方式来完成编写。本次实验分为两部分;第一部分是基础的程序编写,第二部分则做出了进一步的改进:理解引用变量与对象实例之间的关系与区别、理解方法调用时引用类型参数的传递过程、掌握private、protected、public等关键的使用场合与使用方法、掌握对象组合的方式与方法、理解Java中方法重载的实现方式都是这一部分需要掌握了解的。   4)第三次实验依旧是以农夫过河为背景进行程序编写,但这次要求使用继承与多态,还要掌握Java语言中继承的基本概念集使用方法、Java语言关键字的使用方法,包括理解继承与组合的区别、程序设计中代码复用的重要性。而实验三的第二部分则是在第一部分的基础上又加上了兔子和胡萝卜两个对象,使题目的可能性更加多变,也要求我们掌握Java语言中多态的基本概念及使用方法、上转型和下转型的基本概念及使用方法、Object类中的toString()、equals()的使用方法、instanceOf运算符的使用方法、Java语言中成员变量隐藏的基本概念及使用方法。   2.设计分析   采坑心得    改进建议:   1)21级软件工程专业期中考试   设计与分析 本次考试的第一题比较常规只需额外建立两个类:点和线。很多人都能拿到至少16分,不少的人在第一题都没有失分。不过对我自己来说,第二题开始变得比较具有挑战了。由于第一题花了较多的时间,导致我第二题一没有时间思考,二没有时间编写,让我第二题变得很被动,不过还是拿到了分数,不过第三题就没有分了。   采坑心得

 

这里我认为是第一题比较重要的一段:new了两个Point后才可以进行下一步对point类的建立

改进建议

因为这道题在考试时没有太多进行思考,在考完后进行进一步的思索后,发现这道题并没有需要改进的地方。

2)实验一Java程序控制结构

设计与分析

 

 这是我们开始学习类的建立的第一个实验题,属于一个比较常见类型的Java题目。该题是输入学生的信息在进行下一步判断,并输出该班级所有学生的平均分和最高分。学生的信息包括姓名,学号和四门科目的成绩。若是想处理的更为体现类的形式,可以将数据计算处理在一个计算类中,判断条件写在判断类中,结果输出写在一个输出类中,这样可以将题目处理的更有可读性。通过判断结果来输出。可以先判断结尾,结尾正确再去判断是否奇校验正确。形式简单,但最后还是回对bug进行不断调试。灵活运用eclipse的测试功能可以更高效的完成代码的编写。

采坑心得

确实没想到空格也要单独弄,第一遍敲完后才发现题目中还有这个要求,不过确实没什么难度,后面加上后也就解决了。倒是循环结构的用法,刚从网上看了些皮毛就开始动手,导致根本没有理解,返回的一直是自己所做的正误标记,一直报错;将二者在本题返回的题意正确与否弄反,一直过不了测试点,后发现后及时调整,完成了该题。

改进建议

通过SourceMonitor以及PowerDesigner软件测评结果可以发现,该题目测试点存在一点点问题:1.部分测试点设置的有点偏离,需要优化;2.题目简单,导致只有主类,看着也十分直白。这样可以大幅降低复杂度,代码运行的效率更高。若是想处理的更为体现类的形式,可以将数据计算处理在一个计算类中,判断条件写在判断类中,结果输出写在一个输出类中,这样可以将题目处理的更有可读性。题目要求求出农夫带一只羊,一条狼和一颗白菜过河的办法,所以依次成功返回运算结果后,需要继续运算,直至求出结果,即给出农夫的过河方案。

3)实验二 类与对象(一)(二)

设计与分析

本题的背景是著名的农夫过河问题,针对实现整个过程需要多步,不同步骤中各个事物所处位置不同的情况,可定义一个结构体来实现对四个对象狼、羊、白菜和农夫的表示。对于起始岸和目的岸,可以用0或者1来表示,以实现在程序设计中的简便性。题目要求给出四种事物的过河步骤,没有对先后顺序进行约束,这就需要给各个事物依次进行编号,然后依次试探,若试探成功,进行下一步试探。这就需要使用循环或者递归算法,避免随机盲目运算且保证每种情况均试探到。输出界面要求具有每一步中农夫所带对象及每步之后各岸的物体,需要定义不同的数组来分别存储上述内容,并使界面所示方案清晰简洁。

采坑心得

在主方法中,将m的初始值设置为2表示正在进行的情况,在while循环中如果m=0或1则直接退出显示游戏结果,在switch语句中case0,1,2,3,4分别选择过河的物体的情况,case中farmer.cross_alone()等类似的方法表示农夫和物体过河的位置以及是否成功过河的情况,is_alive()方法表示判断物体是否被吃,show()方法输出农夫、各种动物、物品的状态(生存、位置),is_win()方法判断是否成功过河。巧妙利用m的值判断是否过河成功。

改进建议

建议倒真没有,农夫过河是很经典的题。

 

3.总结

这是本学期Java第二阶段的学习,能看到自己获得了知识,但更多的是自己的不足,而且不足之处很明显。学习的东西虽然基础,但是掌握却需要大量联系。从最初适应Java语言变成灵活运用Java语言,再到后面运用多个类编写程序,还有很长的路需要自己去一步步践行。作为初学者,发现还有许多东西需要去掌握:

1.基础语法的巩固,在进行Java编程中,时常脱离不出C语言的习惯,导致出现语法错误,甚至不记得如何进行编写,这需要在练习中,不要只会对之前自己写的代码复制粘贴,还要留意写法。

2.多学习使用eclipse,这个编译软件很好用,功能很多,自动报错的功能对于代码的修改很有帮助,写pta不能只在那上面写代码,灵活运用eclipse对自己编写修改代码很有帮助。

3.不同类之间的关系,许多时候正是不知如何进行将类互相呼应,导致代码亢长,产生垃圾代码,这不利于学习;当能够了解,并运用类与类之间的关系,则能解决大多数问题。

向前看,面向第三阶段的学习。

这篇关于面向对象程序设计--(7-10月)学习总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!