大家都在谈的“面向对象”

作者: 白晓明 | 来源:发表于2019-04-12 20:47 被阅读7次

面向对象Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象时一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。 ——摘自《百度百科》

在说面向对象之前我们先来说说面向过程。早期开发最流行的开发模式的面向过程,“过程”即一步一步来实现我们的目标。例如:做饭这个常见的动作,我们首先要知道自己吃什么?红烧肉?土豆丝?醋溜白菜?当我们选择吃什么后,需要准备菜品,调料等一系列食材。然后我们洗菜、切菜、炒菜,最后我们才是吃饭。
面向过程即我们不能遗漏任何一个环节的操作,其只针对问题本身,并不对齐进行模块化设计,这便为后期的维护和变更带来了很大的麻烦。

面向对象 其说白了就是找别人(对象)来为我们做事。我们可以通过分析问题,将其分解为多个模块来一一实现,然后进行组合。我们依旧来说说吃饭问题,我们在家不想做饭时,打开手机,使用订餐软件点自己喜欢的食物下单后等待送货上门即可。这中间就减少了买菜、洗菜、炒菜等环节,并不是减少了这个步骤,而是将步骤模块化,各司其职。对于我们而言,将买菜、洗菜、炒菜这个环节交给餐厅,他们负责出热乎的饭菜。而负责配送的外卖小哥其实就是将饭菜端到桌子上的我们。无论是餐厅还是外卖小哥,其可以单独存在,也可以被重复利用。

面向对象主要特性

1. 封装性

封装是指隐藏对象的属性和实现细节,仅对外提供公共的访问方法。
比如:人这个群体中,身份证号码是一一对应的,因此对于一个人来说,其身份证号码是不可变的,但其他人想要知道他的身份证号码,我们为了防止其他人对该身份证号码进行修改,因此我们只需要给其他人提供一个获取的方法即可。

public class Person {
    private String personCode;//身份证号码

    //其他人可以调用该方法查看人员身份证号码
    public String getPersonCode() {
          return this.personCode;
    }
}
2. 继承性

继承 即具有相同特性,却又有独特个性的对象。
比如动物这个群体,我们可以定义一个动物对象,它们都具有吃这个属性,但它们有具有不同的能力,狗可以看门,猫可以卖萌等。但我们不可能为每个动物去创建一个对象,这样整个程序会显得很臃肿。我们定义一个父级的对象,它具有所有动物都拥有的属性,同时我们定义个体(猫)独有的对象,并继承于父级对象。父级对象所拥有的属性,子对象也拥有,但子对象拥有的父级对象不一定会拥有。

public class Animal {
    private String name;//动物名称
    
    //动物都具备吃的能力
    public void eat() {
        System.out.println("正在吃...");
    }
}
//但不同的动物喜好不同的食物

public class Dog extends Animal{
    public void eat() {
        System.out.println("狗喜欢啃骨头...");
    }
}
3.多态性

多态 我们可以理解为同一种行为的不同展示方式。
比如:交通工具,它们的运行方式不同(飞机天上飞,轮船海里游,汽车地上跑等),但它们具有同一行为(运输)。

public class Transport {
    public void transportation(Plane plane) {
        System.out.println(plane.getName() + "飞机在天上飞!");
    }
    public void transportation(Ship ship) {
        System.out.println(ship.getName() + "轮船在水里游!");
    }
    public void transportation(Car car) {
        System.out.println(car.getName() + "汽车在地上跑!");
    }
}

相关文章

  • 大家都在谈的“面向对象”

    面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩...

  • 《设计模式之美》学习笔记(一)

    01.当谈论面向对象的时候,我们到底在谈论什么? 面向对象编程的英文缩写是 OOP,全称是 Object Orie...

  • 学习笔记-设计原则与思想:面向对象

    当我们谈论面对对象的时候,到底在谈论什么? 什么是面向对象的编程和面向对象的编程语言?面型对象编程是一种编程规范式...

  • 短视频设计与开发

    目录 开始‘叨叨’ Java基础知识1.1 大家都在谈的‘面向对象’1.2 Java常用类库(本项目中常用)1.3...

  • Java基础——面向对象

    相信大家都多多少少的听说过面向对象与面向过程的概念吧,今天阿Q就带大家一起研究一下面向对象。首先给大家说一下概念吧...

  • iOS 类的结构分析

    在谈及面向对象编程的时候,总是离不开 对象 与 类 。对象 是对客观事物的抽象,类 是对 对象 的抽象。它们的关系...

  • OC底层05:类结构分析

    在谈及面向对象编程的时候,总是离不开 对象 与 类 。对象 是对客观事物的抽象,类 是对 对象 的抽象。它们的关系...

  • 类和对象

    在第一次听到“面向对象“这四个字,大家或许多少都感到有些不知所措,感觉像是玄学。到底什么是面向对象,面向对象有什么...

  • Java面向对象基本概念

    大家都知道Java是面向对象的编程语言,掌握面向对象的思想是掌握java这门编程语言的关键所在,下面就来谈谈我对于...

  • 设计模式前篇之:一起过一下面向对象的概念

    面向对象编程,好像从来都是最熟悉的陌生人,相信大家都看过难记难懂的概念。面向对象的设计模式存在大量的类结构,体现面...

网友评论

    本文标题:大家都在谈的“面向对象”

    本文链接:https://www.haomeiwen.com/subject/jqlhwqtx.html