Java理解面向对象

1、 结构化程序设计:按照功能来分析系统需求,其主要原则为自顶向下,逐步求精,模块化

  • 自顶向下:程序设计时,应先考虑总体,后考虑细节,先考虑全局目标,后考虑局部目标,不能一开始就过多的注重细节,先从最上层总目标开始设计,逐步使问题具体化
  • 逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化
  • 模块化设计:模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块
  • 结构化分析方法对系统进行需求分析
  • 结构化设计方法对系统进行概要设计、详细设计
  • 结构化编程方式来实现系统

2、结构化程序设计的局限性

  • 设计不够直观,与人类习惯思维不一致(采用结构化程序分析,设计时,开发者需要将客观世界模型分解成一个一个功能,每个功能用以完成一定的数据处理)
  • 适应性差,可扩展性不强(由于结构化设计采用自顶而下的设计方式,当用户的需求发生改变,或者需要修改现有的实现方式是都需要自顶而下的修改模块结构,这种方式的维护成本相当大)

3、操作之间的执行次序就是程序的控制结构

4、任何简单或者复杂的算法都可以由三种基本结构组成:

  • 顺序结构
  • 选择结构(单选泽结构,双选择结构,多选择结构)
  • 循环结构(当型循环(当条件满足时进入循环体),直到型循环(先进入循环体,直到条件不满足,退出))

5、面向对象程序设计

  • 面向对象是一种更优秀的程序设计方法
  • 面向对象的程序设计语言将类作为最小单元(面向对象的基本概念:类、对象、继承、封装、多态)

6、三个基本特征(继承,封装,多态)

  • 继承:在面向对象方法中,类和类之间共享属性和操作的机制称为继承。子类可以继承父类的特定属性和方法。
  • 封装:类是具有共同属性、共同方法的对象的集合。将属性和方法按照不同的访问权限封装在类中。
  • 多态:同一个对象,在不同的上下文中可以表现出不同的行为。两种表现形式:方法重载,方法覆盖。

7、一切都是对象(咋和Linux这么像呢😂)

  • 除了8个基本数据类型值之外,一切都是对象(这点倒是不同于Linux),对象就是面向对象程序设计的中心。对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机大炮都可以看成对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
  • 对象具有状态,一个对象用数据值来描述它的状态,对象拥有属性(用字段描述),对象拥有行为(用方法描述)
  • 对象实现了数据和操作的结合,使数据和操作封装于一个类中

8、类和对象

  • 类是一组具有相同或者相似特征(属性和行为)的对象的集合
  • 类是对一类事物的描述,是抽象的、概念上的定义,对象是实际存在的该类事物的每个个体,也称实例,是具体的。
  • Java语言使用class关键字定义类,Java允许开发者自由定义类,定义类时可使用字段来描述类对象的属性,使用方法来描述该类对象的行为特征。

9、类之间的关系

  • 继承:Java语言使用extends关键字表示继承,Java的子类是一种特殊的父类。
  • 组装:Java语言通过在一个类里保存另一个对象的引用来实现这种组合关系。