[Java教程]23.面向对象

Java教程专栏:https://blog.csdn.net/qq_41806966/category_9929686.html

hello,I'm shendi

这节讲解什么是面向对象


目录

面向过程

面向对象

迪米特法则

单一职责原则


或许在之前就已经听过面向过程,面向对象这两个词,这两个都是一种思想

那么,什么是面向对象呢?

在了解面向对象的时候先了解一下什么是面向过程

面向过程

面向过程是一种思想

字面意思,就是说我们的程序以过程为中心

C语言就是面向过程的

举个例子

  • 程序员要敲代码了,首先他插上电源,然后打开电脑,然后打开某编辑器,然后开始敲代码
  • 要吃饭了,首先我们要拿起筷子,然后把筷子放到饭里,然后...放到嘴里

也就是说过程是关键,一步一步的都要自己去实现

面向对象

面向对象(Object Oriented Programming)和面向过程一样,也是一种思想

Java语言就是面向对象的,目前大多数语言基本上都是面向对象的

由上面的例子举栗子

  • 敲代码
  • 吃饭

于是得出区别:

  • 面向过程是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用.
  • 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为.

那么,为什么Java是面向对象的,而不是面向过程的呢?

面向对象与面向过程最大的区别就是面向对象有三大特性

分别为

  • 封装
  • 继承
  • 多态

重要的就是上面三大特性,在学习设计模式的时候会深有体会

这里列举几个设计模式法则(如果对设计模式有兴趣可以进入到我的设计模式专栏)

迪米特法则

首先我们目前不知道什么是继承,可以简单理解为就是父子的那种继承关系

迪米特法则又称最少知识原则,一个类对于其他类知道的越少越好

只和朋友交流,不和陌生人交流

例如我们买东西有时候会有中介,这个时候我们不知道对方的身份,我们只知道中介的身份,通过中介来进行交易,并且中介也只知道自己一点信息,这种就是迪米特法则

单一职责原则

又称单一功能原则

就一个类而言,应该仅有一个引起它变化的原因。应该只有一个职责。 [1]  每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的分离。

也就是说一个类只做一件事(一个人只做一份工作)

例如老师只做老师做的事情,学生只做学生做的事情

一个用于处理数据的类只处理数据,比如增加,删除,修改,查找等有关数据的操作

程序设计应该高内聚(内部高度集中),低耦合(对外使用较少)

比如说工具类一般都是高内聚,低耦合的,因为大多都是一些算法操作

例如

public class A {
    public static int sum(int a, int b) {
        return a + b;
    }
}

这种没有使用任何非自己的类就是低耦合,自己将属于自己部分的事情全做了就是高内聚

低耦合很好理解,就是尽量不要使用其他非框架,JDK的类

高内聚比如上面说的处理数据的类,这个类里应该有所有的关于数据的功能,而不是只有一个增加这种就是高内聚

下一节学习面向对象三大特性

猜你喜欢

转载自blog.csdn.net/qq_41806966/article/details/108499958