java学习总结

前言本次总结,是对这学期以来对于Java的所有课程学习的总结。将从知识总结、设计心得、课程收获三方面总结。

一、知识总结

本学期介绍了面向对象程序设计的常用七种术语,总结如下:

  1.     对象:

    面向对象程序设计就是使用对象进行程序设计。对象代表现实世界中可以明确标识的一个实体。例如:一个学生、一张桌子、一个按钮等都可以看作是一个对象。每个对象都有自己独特的属性(状态)和方法(行为)。

  2.     属性

    用来描述对象静态特征 (状态)的一个数据项 (专业术语:成员变量)

属性一般就是成员变量,属性的定义规则是:set/get方法名,去掉set/get后,将剩余部分首字母小写得到的字符串就是这个类的属性。

  3.     操作

    用来描述对象动态特 征(行为)的一个动作系列。 (专业术语:方法)

  4.    

    是具有相同属性和操作的一组对象的集合, 它为属于该类的全部对象提供了统一的抽象描述,由一个类名、一组属性和一组操作构成

  5.     封装

    就是把对象的属性和操作结合成一个独立的系统单位,并尽可能隐藏对象的内部细节,通俗的讲就是包装,把控权限,该访问的访问,不该访问的限制访问(常用修饰符有public、private,以及缺省)。适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。

  6.     继承

    是指特殊类(子类)可以自动拥有一般类(父类)的全部属性和操作。但是要注意private等修饰的属性和方法。

  继承的特点:

  (1). 只支持单继承,即一个子类只允许有一个父类。

  (2). 子类可以拥有父类的属性和方法

  (3). 子类可以拥有自己的属性和方法

  (4). 子类可以重写覆盖父类的方法

  7.     多态

指继承之后出现的各个子类,这种子类之间是有相同部分也有不同部分。

此外,还进一步学习了修饰(主要是封装)、接口以及各种关键字等有关知识,其总结如下:

       Final关键字

    使用final声明类不能有子类,声明的方法不能被子类所重写,声明的变量是常量不能修改。

       Super关键字

         在继承父类的时候,访问父类的属性(变量)可以通过super关键字来实现,在创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法。

       和this的区别

       (1).代表的事物不一致。

    super关键字不能代表对象,只是代表一个对象中的一块内存。

    this关键字代表的是所属函数的调用者对象。

  (2).使用前提不一致。

    super关键字必须要有继承关系才能使用。

    this关键字不需要存在继承关系也可使用

  (3). 调用构造函数的区别:

    super关键字是调用父类的构造函数。

    this关键字是调用本类的构造函数。

  需要注意的是

    super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都需要第一个语句。(例子 main方法不能同时使用this,super)

       抽象类

  1. Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
  2. Java中所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类中类的其它功能依然存在,但是不能实例化对象。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。

       Object类

              是所有类的父类,声明一个Object类的作用就是可以传递任何类型的类来使用。

       它有很多类对象会用到的方法,例如比较常用的toString 、equals。

  写封装方法的时候不确定传进来的值的类型,就可以使用Object作为类

       接口

    接口,在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

       异常处理

              通常使用try和catch关键字来捕获异常

       Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查。

  如果try里没有代码,或者没有try,出现异常会导致程序崩溃。

二、设计心得

  对于代码的设计需要遵循基本的设计原则:

  1.     开闭原则

    面向扩展开放,面向修改关闭。

    通俗的讲就是需要注意代码的健壮性,其可扩展,但不可修改。在有新的需求的时候,增加一些类就可以了,而对于原来的代码不能够修改。

  2.单一原则

         一个类只负责一项职责,应该仅有一个引起它变化的原因

  优点有:

  (1).可以降低类的复杂度,逻辑更简单;

  (2).提高类的可读性,提高系统的可维护性;

  (3).变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

  3.依赖倒转原则

         此项原则理解不够,给出的解释是: 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程

  4. 组合/聚合复用原则

              就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的

       该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。

       合成/聚合复用

  ① 优点:

    新对象存取成分对象的唯一方法是通过成分对象的接口;

    这种复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的;

    这种复用支持包装;

    这种复用所需的依赖较少;

    每一个新的类可以将焦点集中在一个任务上;

     这种复用可以在运行时动态进行,新对象可以使用合成/聚合关系将新的责任委派到合适的对象。

  ② 缺点:

    通过这种方式复用建造的系统会有较多的对象需要管理。

  继承复用

  ① 优点:

     新的实现较为容易,因为基类的大部分功能可以通过继承关系自动进入派生类;

     修改或扩展继承而来的实现较为容易。

  ② 缺点:

     继承复用破坏包装,因为继承将基类的实现细节暴露给派生类,这种复用也称为白箱复用;

     如果基类的实现发生改变,那么派生类的实现也不得不发生改变;

     从基类继承而来的实现是静态的,不可能在运行时发生改变,不够灵活。

三、课程收获

       1.通过本门课程的学习,对于面向对象思维有了更深的认识。从面向过程的c语言当中,可以清楚的发现,c语言是一门注重怎么写的一门语言,对于一个具体的问题需要设计其模型(包括函数、变量),过程繁琐,理解易出现混乱。但是一门面向对象的语言,解决问题设计模型,大体上使用对象的语言来描述,不需要太过于注重细节,细节只需要交给对象来实现即可。对于程序的可读性大大提高。

       2.Java还设计了很多接口、复用功能等,可以大大化简程序的设计。

       3.在学习的过程当中也遇到很多问题,比如对于设计原则的理解很是不够,对于问题的化简,代码的设计不能迅速作出反应,需要花费很多时间,Java的学习看来还是远远不够。

原文地址:https://www.cnblogs.com/2020zxc/p/13050535.html