java面向对象编程作业心得(1)
〇、前言
自java课程开启以来,已经在PTA上完成了3次练习,还有一些课堂上的小练习。除了第一次练习时有些生疏,没能拿到满分,其余2次的作业我都是完成了每一个测试点。即使之前我已经学习了一定的java,但是由于缺乏练习和长时间的遗忘,和没课本在网上教学。写起代码还是有一定的磕磕绊绊,不能非常快速且高效地完成高质量的代码。


(看到一片红,激动地眼泪都快下来了)

一、作业过程总结
①总结三次作业之间的知识迭代关系
在学习面向对象过程之前,我们学习了面向过程编程即C语言。在java中我们更注重类的定义和属性,方法的设计。使我们更加人性化地思考问题和解决问题。在这3次作业中,我们学习了类的封装和定义。让我们更好地理解了面向对象的优势。
②如何通过作业逐步从面向过程过渡到面向对象
以前学C的时候老师就告诉我们:程序=数据结构+算法。这句话对我后来学习数据结构起了很大的作用,积极的作用。后来学到Java面向对象部分时,这句话让我在有些地方怎么也想不通。想了很久之后,我得出了另一个结论,在面向对象程序中,程序=对象&行为。这里我使用&,是为了说明对象与行为是关系的。行为是对象的行为,对象要对它自己的行为负责。
③作业过程中遇到的问题及解决方法
在作业中我遇到了很多的问题,比如如何将int类型的整数化成String类型的字符,如何定义一个类和属性以及方法的呢,还有public,static,private等关键字所代表的含义,这些问题吸引着我一步步进入java的学习中,特别使当一个问题解决,测试点由绿色变成红色时的喜悦是使我兴趣增加的主要来源。

(突然特别不喜欢绿色......)

( 豁然开朗)
接下来说说我遇到几个问题时的解决方法吧
1.如何将int类型的整数化成String类型的字符
这个问题老师上课的时候和我们讲过,可是简单地记忆使用长时间会遗忘,所以我去百度上查了下关于这类类型转化方法的文章,进一步了解实质。
2.如何定义一个类和属性以及方法
这个问题其实很多人都可以用时间和练习来解决,但是作为一个初学者,我对于这方面的理解只能从形式上模仿,知道这个类放在源代码哪个位置和如何定义。但我想知道为什么要放到这个位置和放在不同位置的区别
3.public,static,private等关键字所代表的含义
我在学c语言的时候函数前无非是double ,int,String,void等,可在学习java时碰到了public,static,private等关键字,由于没有课本的原因,我只能从网上查抄并进行笔记的记录。对于一个学习者,我认为编程要有良好的学习习惯。
总结:在设计和编写程序时,必要的逻辑检查,和输入校验是很重要的,它可以使得编写的代码更加严谨,减少运行错误,提高运行效率是至关重要的,它也可以减少出错,细心是编写代码严谨的一个优秀品质,因此,在编写代码时不能过分追求速度,而忽略了代码的质量和内涵。
④每次作业花费的时间比例
对于第一次作业,虽然比较简单,但是由于长时间的未接触,我大约使用了3个小时的时间;第二次作业,大约花费了5个小时左右;第三次作业大约花费了5个小时左右。
⑤对编程过程的严谨性的认识及教训
高效的编程,好的习惯功不可没。一个编程者想要快速地写出可读性高,算法高效,且一次通过的源码,必须经过大量的练习和总结。冰冻三尺非一日之寒,千里之行始于足下。对于我们初学者来学耐心时非常重要的。有些同学特别时对于这方面比较薄弱的女性同学,在长时间的编写后代码始终运行不起来,即使运行起来也漏洞百出。这大大打击了自信心,使他们失去了兴趣,甚至怀疑人生。所以我们要一步一个脚印,其实编程只是另外一些语言,而我们时使用这些语言告诉计算机进行相应的操作。学习编程,严谨使编程更简单。
二、Java设计心得
①面向过程与面向对象的比较
面向过程的优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展
面向对象的优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点:性能比面向过程低
②面向对象设计的基本原则理解
将你所要面对的问题分解成一个个对象,就任何事情都可转化成对象来设计。定义对象的属性和对应的方法。好比如设计一个狼,定义的属性有体长,性别,毛色,体重等,方法有捕食,奔跑,睡觉等,当我们要使用这个类的时候直接引用即可。还有可以继承,狼类属于动物,如果我们定义了动物类,那么我们就可以让狼类继承动物类,也就使拥有了动物的属性,是不是很人性化的设计呢?还有封装,多态等设计,我还没学到,不过java如此受欢迎是有原因的。
③OO编程思维的理解
java最重要的是类的定义,作为面向对象编程,类的概念是java的根本。我们在使用java编程解决问题时,设计好类的属性和方法能使我们的编程变的事半功倍。java具有许多优点,无论是对于程序设计者或者用户来说都是如此。面向对象为软件产品扩展和质量保证中的许多问题提供了解决办法。这项技术能够大大提高程序员的生产力,并可提高软件的质量以及降低其维护费用。
三、测试的理解与实践
①测试对于编码质量的重要性
测试是什么?这里的测试就是对项目开发过程的代码进行差错审查,保证其质量的一种过程。一个好的测试能够快速发现代码的问题,如是否有逻辑错误或者效率是否合格等,好的代码经得起测试的重重考验,较差的代码在测试面前就会暴露出不足之处。如何在最短的时间,使用最少的资源来测定一个软件是否高效和质量的保证,一直使软件公司的追求。
②假如让你设计测试用例,你会如何做
我会就问题而言来设置几个常见的测试用例,再检测一下运行的时间和比较极限的数据用例,还有输入格式和输出格式的正确性。就不同的项目而言,设置不同方向的测试点,虽然我们不可以100%地说这个软件的优秀与否,但在很大程度上能够有足够的保证。
四、课程收获
在这几周的学习以来,我对java的历史和面向对象的编程有了一定的基础了解。对代码的可读性和类的设计有了更深的概念,而且我写代码的速度有所提高(几乎可以不看键盘打代码),这都少不了大量练习。java是个很好的编程语言,有着很优秀的性质。而eclipse是很好的开发平台,里面有着许多的库,这都是历代程序员的功劳和心血。前人已经为我们开辟了许多的路,我们现在学编程已经少走很多弯路了。而且我还学会了写博客,即使自知水平和实力低下,但是还是很开心能写这些东西。相信我在学习java的过程中不仅仅能收获编程的能力,而且能有其他的意外的收获。
五、对课程的建议
首先,不同于以往学C语言,老师会把一些语法和我们讲解。java课上老师直接进行例题的解析,相信很多同学都有一定障碍,即使我之前学过一些听起来也不敢说完全懂了。所以希望老师能够在课堂上更多地对比一些java与C语言不同的地方和各自的特点。也要将一些有关java的故事什么之类的来吸引一下同学们学习java的兴趣。比如推荐下面这本书......

遇事不要慌,来杯java压压惊。


浙公网安备 33010602011771号