• 菜鸡的Java笔记 第八



        面向对象的特点以及开发过程。
        java中最大的特点是其支持面向对象编程设计思想。在面向对象之前广泛流传的是面向过程的编程思想,例如:C语言的开发就属于面向过程
        如果要想更简单的去理解面向过程与面向对象的区别:如果说现在要生产自行车:
            面向对象:不同的工厂生产不同的配件,而后合理的组装,这样的好处是所有的配件都统一的标准化的尺寸。如果出现了损坏,那么可以进行更新
            面向过程:这个自行车自己自主开发,自主标准,当出现问题之后整体报废
        所谓的面向对象编写如果按照今天的方式来理解:制定出操作的标准,而后依据标准去执行程序。

        概念
            ⑴对象。
                对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。[2]
            ⑵对象的状态和行为。
                对象具有状态,一个对象用数据值来描述它的状态。
                对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
                对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中[2]
            ⑶类。
                具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。
                类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
                类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。[2]
            ⑷类的结构。
                在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。

                ①一般--具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
                ②整体--部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。[2]
            ⑸消息和方法。
                对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。[2]
                类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。
    >>>
        面向对象的现在最为流行的 软件设计方式之一,但是在实际的软件设计环境之中,有一部分人是反对面向对象的,包括数据库也一样,有一部分是反对关系型数据库,反对SQL的。

        对于软件开发模式有两种:面向过程,面向对象。
        面向过程指的是只完成自己所需的操作,但是这种设计会缺少可维护性。
        面向对象本质上来讲是一种组件化(模块化)的设计 。方便进行代码局部维护。但是这样的设计虽然适合维护,可是设计上的要求规范比较多。也就是说模块化的设计最为重要的是标准,以及整个项目的整体把控。

        在面向概念里面实际上回分为一下几个特点:
            封装型:保护内部的操作对外不可见,或隐私不被破坏;
            继承型:在上一辈的基础上继续发展。
            多态性:在一个可控的范围内状态可以发生转变

        而在面向对象开发之中,有三个阶段:
            OOA:面向对象分析;
            OOD:面向对象设计;
            OOP:面向对象编程。
        如果要想对面向对象进行实际的编程,那么首先就需要知道面向对象能干什么,不能干什么同时记住一个核心点,面向对象对象设计的核心:标准

        面向对象如果要进行学习,能够达到一下两点是最好的:
            可以进行现实世界的抽象;
            可以进行合理的类的功能设计。

    >>>>>
        面向对象是模块化的设计
        面向对象的 主要特点:封装,继承,多态。

  • 相关阅读:
    100个经典的动态规划方程
    poj 2105 IP Address
    codeforces 299 A. Ksusha and Array
    codeforces 305 C. Ivan and Powers of Two
    性能测试实战 | 修改 JMeter 源码,定制化聚合压测报告
    Pytest 测试框架训练营,测试大咖带你搞定自动化+接口测试实战 | 限时免费报名
    MTSC 测试开开发大会(深圳站),报名立减 100 元!
    测试人面试 BAT 大厂之前,需要做好哪些准备?
    iOS 自动化测试踩坑(二):Appium 架构原理、环境命令、定位方式
    【北京】美团打车招聘职位
  • 原文地址:https://www.cnblogs.com/mysterious-killer/p/9957982.html
Copyright © 2020-2023  润新知