java课程心得_Java课程感想

从最开始的输入输出操作,解决基本问题,解决一个一个大作业,到java面向对象程序设计的结课。其中,在课堂上学到的只是一些皮毛,真正要解决好一个问题,多的还是靠自己的深入学习,将课堂上学到的知识拓展深入,举一反三。

在之前的几次作业中,面向对象的编程思想不是很突出,多的是熟悉java的编程语言,例如java的代码书写格式,正常的输入输出,这时的操作方式和C语言除了格式不同,区别不是很明显,之后开始书写特定方法函数,到最后的分类操作,以及多态,接口,继承等等,此时java面向对象的编程思想逐步显现。

对面向对象编程思想的认识。面向对象区别于面向过程,面向过程是指从解决一个问题的过程出发,一步一步的调用函数去解决问题,而面向对象将功能需求,将代码装在一个个类中,通过建立特定对象从而通过对象的方法,完善一个个类来解决问题,将代码模块化,方便查看,修改,复用和拓展。

面向对象编程的三大特性:封装,继承,多态。

封装:把抽象的数据和对数据进行的操作封装在一起,数据被保存在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行操作。属性的公有化public和私有化private,public等属于封装。封装所带来的好处是:明确的指出了那些属性和方法是外部可以访问的。这样当你需要调整这个类的代码时,只要保证公有属性不变,公有方法的参数和返回值类型不变,那么你就可以尽情的修改这个类,而不会影响到程序的其他部分,或者是使用到这个类的其他程序。封装是最早接触的一大特性,从开始分类时,属性方法的公有私有就已经体现这一大特性,public可直接访问,private不可直接访问,而是通过特有的getter,setter方法来访问private属性。

继承:一个类如果继承现有的类,则这个类将拥有被继承类的所有非私有特性,定义父类子类,子类继承父类,子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。从而增加了功能,同时减少相同代码的书写,将子类对象作为父类对象来使用。

多态:多态以继承为基础,通过方法重载实现,调用同一个方法,不同的对象造成不同的功能。

面向对象编程的原则:开闭原则,单一职责原则,里氏替换原则,迪米特法则,依赖倒置原则, 接口隔离原则,合成/聚合原则。

单一职责接触最多,也容易理解,即一个类做只一件事,这样可以减小代码耦合度,使得每部分代码相互独立,互不影响。例如每次作业对输入数据的判断,都是通过一个validata类来进行判断,或者每次对数据的处理通过一个类来操作。

开闭原则:对拓展开,对修改闭,尽量减少代码的修改,提高拓展性。

......

正则表达式,在字符串格式匹配上十分重要。之前的水文判断,表达式求导,表达式计算等都使用到了正则表达式。不过,正是经过多次的使用,对一些较为基本的字符串格式更加熟悉。能做到通过正则实现自己想要判断的某一个字符串。

循环遍历方式。由最初for(int i =0 ; .....)的基本操作,到for(String a:s)的循环方式,使得循环内部的使用更加方便,并且也降低了代码的复杂繁琐度。a作为字符串数组的遍历字符串,在内部可以直接用a作为当前字符串,不用写成a[i],并且写i++等繁琐操作。

排序方式。从最开始的自写选择,冒泡等排序方法变成通过修改Java中自带的sort方法的排序条件,满足对数据的排序。不过此操作没有大范围的使用过,所以还较不熟悉。

各个类型数据的相互转换,以及数据精度处理。

Int ,double等数据可以通过强制类型转换或乘以1.0等操作实现。

Integer和String类型的转换通过Integer.valueof()实现。

大型数据计算后可能会丧失精度,所以可以在结果前加上强制类型转换处理,或同过import java.math.BigDecimal此类来返回精确结果。

通过java课程和作业,还学到了各个自带类的方法。例如math类,String类,StringBuilder类,和List,ArrayList等,使得Java代码的书写方便了许多,许多方法其本身就携带了,只需要我们选择性调用就好了。学习面向对象的编程,主要是学习编程思想,而不是注重于如何写解决问题的代码。通过java课程的学习,在解决问题的途中,自己能感受出写的代码是否依旧属于面向过程,或者写的代码是否遵循基本原则如单一职责等。

总之,通过此课程的学习,提高了自学能力。并且,在学习过程中要大胆尝试,多应用,多尝试,才能有所感触。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值