zoukankan      html  css  js  c++  java
  • 面向对象

    从这篇博客开始,我们进入了一个崭新的领域——面向对象(OOP,Object Oriented Programming)

    这篇博客只会讲述一些基本的概念,因为面向对象要讲述的东西有很多,先理解了概念,才能写出高质量的面向对象的代码。

    程序大体可以分为面向过程的语言(C语言),面向对象的语言(C++, Java, C#)。当然还有其他分类,如面向函数的语言(ML, Haskell)

    主要区别一下面向过程的语言和面向对象的语言。

    面向过程

    可以这么说:在学习面向对象之前,我们写的代码都是面向过程的。我们写一个程序,一般的思路是:

    1. 确定程序的目的。即为什么要写这个程序,要实现什么功能。
    2. 分析程序的步骤。比如我们要写一个两数运算的小程序。那么很简单,大概的步骤是:1) 提示用户输入两个数字和要执行的操作 2) 对两个数字进行运算操作 3)把求和的结果返回给用户。
    3.  根据分析好的步骤一步步写出代码。即将这个程序实现。

    这样的思想就是面向过程的:从问题出发,分析问题,然后按照分析好的步骤实现功能。

    面向对象

    面向对象,就是把有相同属性或动作的事物归为一个。这里提到了“类”,类就是一系列事物的抽象。比如说,人就是一个类。你,我,他都是人,我们都分别是人这个类的实例。类是抽象的,并不具体指代某一个事物。而它里面的一个实例,叫做对象,才是具体的事物。再类比“人”来说,人是一个类,而作为人的实例的你、我、他,是三个对象。

     我们说类不是对象的集合,而是对对象集合的描述,或者说是对对象抽象的定义。如何来描述呢?就要靠类中的属性和方法。

    之前说过,一个类是具有相同属性和动作的一个抽象。拿人来类比,人具有什么属性呢?比如年龄,身高,体重,名字……这些都是每个人都有的属性。虽然每个人的年龄,身高,体重和名字都不一定相同,但是它是属于一个具体的人(对象)的独一无二的属性。那么人有什么动作呢?比如吃饭,睡觉,学习,工作……每个人都会干。但是对于具体的任何两个人来说,他们吃的饭可能不同,睡觉的姿势不同,学习和工作的内容也不尽相同。

    那么我们为什么要提出类的概念呢?写程序的时候一个人一个人的去处理也不是很好吗?

    这么做当然可以。但是写出来的代码会显得很杂乱无章,不容易让人理解,找不到内在的联系。面向对象的代码符合人的思考习惯,会让人更加容易理解。

    真正好的程序,并不是冰冷的代码,而是像一首诗。不仅易读,而且读起来有一种美感。

    而且面向对象还有其他的很多好处,主要实践了软件工程的三个目标:可维护性,可重用性,可扩展性。这里就不得不说到面向对象的三大特性:封装、继承、多态(也有四大特性的观点,阿里就支持四大特性,即抽象、封装、继承、多态)。

    有关于三大特性,要讲的东西实在太多。这里不过多展开,请读者自行上网查找资料。博客末尾有一些链接可供参考。

    面向对象的语言不等于面向对象。面向对象是一种思想。我们可以用面向对象的语言写面向过程思想的代码,也可以用面向过程的语言写出面向对象思想的代码。

    参考链接:

    Java类的三大特性总结

    类的几大特性

    类--(面向对象)的三大特性

  • 相关阅读:
    HDOJ骨头的诱惑
    DP Big Event in HDU
    hoj1078
    poj2728
    hoj1195
    poj2739
    poj2726
    海量并发也没那么可怕,运维准点下班全靠它!
    云上安全工作乱如麻,等保2.0来一下
    实践案例丨教你一键构建部署发布前端和Node.js服务
  • 原文地址:https://www.cnblogs.com/bwjblogs/p/12668947.html
Copyright © 2011-2022 走看看