Java菜鸟进阶历程--体会

0.前言

  时间是一场有去无回的旅行,转眼间这个学期的Java课程就画上了句号(但学习Java的道路才刚刚开始),所以本次博客来说说菜鸟学习Java这门课程的体会。

1.初识Java的陌生

  本学期第三周,我正式的接触了Java。从配置jdk和安装eclipse开始(那时侯我想Java应该会很难,安装一个编程工具就有点复杂),于是怀着有些担心的心情开始了第一节Java课程(网课)。第一节课老师也就是讲了一下Java代码的一些优点--健壮性......这节课也是写出了Java的第一个程序--Hello Java。我觉得第一节课意义性还是挺大的,每个人接触一个新的事物,初始状态是比较重要的。对于Java,通过第一节课的学习,便有了动力和兴趣去学习接下来的Java课程。

2.学习Java的良师益友

  学习一门新的编程语言,最好的帮手就是菜鸟教程了(链接:https://www.runoob.com/java/java-tutorial.html),它用通俗易懂的语句让你理解,领略Java迷人的风采。第一次写Java大作业的时候,就是运用Java菜鸟教程,了解了Java基础语法,Java类和对象,然后成功完成第一次大作业。在整个Java学习的过程中,菜鸟教程都伴随着我,解疑了很多疑惑,同时,在整个Java学习过程中,还有老师的帮助,更有年级的一些大佬的相助,这些对于我这个菜鸟来说实在是感激不尽。

3.Java的学习理解

  面向对象编程的四个基本特征:抽象,封装,继承,多态。

  抽象:抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是抽象。抽象包括行为抽象(对象的行为)和状态抽象(对象的属性)两个方面。

  封装:封装就是把过程和数据包围起来,对数据的访问只能通过特定的方法。如:对于私有变量,用set,get方法来进行获取。

扫描二维码关注公众号,回复: 11278921 查看本文章

  继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,提供一种明确表达共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),原始类称为新类的基类(父类).派生类可以从它的父类哪里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要.因此可以说,继承为了重用父类代码,同时为实现多态性作准备。

  多态: 多态是指允许不同类的对象对同一消息做出响应.多态性包括参数化多态性和包含多态性.多态性语言具有灵活/抽象/行为共享/代码共享的优势,很好的解决了应用程序函数同名问题.总的来说,方法的重写,重载与动态链接(对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将用子类中的这个方法)构成多态性.java引入多态的概念原因之一就是弥补类的单继承带来的功能不足。(这个有时也会带来点小烦恼,就是在同一个包里不同的类定义了相同的类,eclipse就会报错。)

  面向对象的五大基本原则:单一职责原则,开放封闭原则,里氏代换原则,接口分离原则,合成复用原则。

  单一职责原则: 一个对象应该只包含单一的职责,并且该职责被完整的封装在一个类中。(应该只有一个引起它变化的原因,实现高内聚,低耦合的指导方针)

  开闭原则:软件实体应当对扩展开放,对修改关闭。(面向对象的可复用设计的第一块基石,是最重要的OO设计原则)

  里氏代换原则:所有引用基类的地方必须能透明地使用其子类的对象。(在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型)

  接口分离原则:客户端不应该依赖那些它不需要的接口。(接口:一个类型所提供的所有方法特征的集合或狭义的特定语言的接口)

  合成复用原则:优先使用对象组合,而不是继承来达到复用的目的。在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用已有的对象,使成为新对象的一部分)

4.Java的学习烦恼

  学习Java最大的烦恼就是我不会用正则表达式了,即使是看了教程,听了老师讲,依旧不会,以至于在几次Java大作业中束手无策。例如,水文数据处理大作业中,用正则表达式判断日期合法性。

1 public boolean validateData()
2     {
3         if(!data.matches("[^\t]{1,}\\t[^\t]{1,}\\t[^\t]{1,}\\t[^\t]{1,}\\t[^\t]{1,}"))
4         {
5             System.out.println("Wrong Format");
6             System.out.println("Data:"+data);
7             return false;
8         }
View Code

  还有一个烦恼就是有时不知道从哪里学起了,感觉自己是在Java大海里一叶孤舟。

5.Java面向对象和C语言面向过程

  因为我学习的第一门编程语言是C语言,所以编程思想被灌输了一整套面向过程的编程思想。然后又接触了Java--面向对象的编程,C和Java的学习让我深切感受到了面向过程和面向对象的不同。C的编程就是一个Main。然后写各种函数,最后在Main里调用函数;Java的编程是一个主类,还有其他类,每个类承担这一个职责。

  面向过程和面向对象的具体定义:

  面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。

  面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。

  面向过程的优缺点:

优点:流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清楚,便于节点分析。效率高,代码的短小精悍,善于结合数据结构来开发高效率的程序。

缺点:需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。

  面向对象的优缺点:

优点:结构清晰,程序是模块化和结构化,更加符合人类的思维方式;易扩展,代码重用率高,可继承,可覆盖,可以设计出低耦合的系统;易维护,系统低耦合的特点有利于减少程序的后期维护工作量。

缺点:开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。

6.由Java到编程

  学习完Java后,我已经初步掌握了两种编程语言。我觉得每种编程语言都有一些共通性,比如:简单的if-else嵌套结构在C和Java中都是一样的......学习编程由天赋固然是好的,但努力是更加重要的,学好编程需要花很多时间在代码上,同时大脑里要有很好的逻辑思维(可能需要良好的数学功底),而且不要惧怕编程道路上的困难,一步一步向前进。Java的课程学习结束了,但编程的学习才刚刚开始,加油!!

  

猜你喜欢

转载自www.cnblogs.com/18207130xj/p/12971931.html