zoukankan      html  css  js  c++  java
  • 面向对象思想的概述

    1:面向对象思想
    面向对象是基于面向过程的编程思想。

    面向过程:强调的是每一个功能的步骤
    面向对象:强调的是对象,然后由对象去调用功能

    2:面向对象的思想特点
    A:是一种更符合我们思想习惯的思想
    B:可以将复杂的事情简单化
    C:将我们从执行者变成了指挥者

    举例:
    买电脑:
    面向过程:我的了解电脑--了解我自己的需求--找对应的参数信息--去中关村买电脑--讨价还价--买回电脑
    面向对象:我知道我要买电脑 -- 班长去给我买 -- 班长就买回来了
    洗衣服:
    面向过程:把衣服脱下--找一个盆--放点洗衣粉--加点水--把衣服扔进去--搓一搓--清洗衣服--拧干--晾起来
    面向对象:把衣服脱下--打开全自动洗衣机--扔进去--一键即可--晾起来
    吃饭:
    面向过程:去超市买菜--摘菜--洗菜--切菜--炒菜--盛起来--吃
    面向对象:上饭店吃饭,你--服务员(点菜)--厨师(做菜)--服务员(端菜)--吃

    家常事物,买洗衣机和去饭店太不划算了,所以,找个对象。
    但是,你不跟我好好学习,你将来4000,你对象8000。

    3:把大象装进冰箱
    面向过程:
    动作有哪些呢?
    A:打开冰箱门
    B:装进大象
    C:关闭冰箱门

    代码体现;
    class Demo {
    public static void main(String[] args) {
    /*
    System.out.println("打开冰箱门");
    //打开冰箱门的东西,我现在仅仅是为了演示,就写了一个输出语句
    //其实,它可能需要做很多操作。
    //这个时候代码就比较多一些了
    //假设我要多次打开冰箱门,
    //代码一多,每次都写一遍,麻烦不
    //我们就应该用方法改进

    System.out.println("装进大象");
    System.out.println("关闭冰箱门");
    */

    //写了方法以后,调用就改变了
    open();
    in();
    close();
    }

    public static void open() {
    System.out.println("打开冰箱门");
    }

    public static void in() {
    System.out.println("装进大象");
    }

    public static void close() {
    System.out.println("关闭冰箱门");
    }
    }

    面向对象:
    我们怎么才能更符合面向对象思想呢?
    A:有哪些类呢?
    B:每个类有哪些东西呢?
    C:类与类直接的关系是什么呢?

    把大象装进冰箱的分析? (如何分析有哪些类呢?UML。名词提取法。)
    A:有哪些类呢?
    大象
    冰箱
    Demo
    B:每个类有哪些东西呢?
    大象:
    进去
    冰箱:
    开门
    关门
    Demo:
    main方法
    C:类与类直接的关系是什么呢?
    Demo中使用大象和冰箱类的功能。

    代码体现:
    class 大象 {
    public static void in() {
    System.out.println("装进大象");
    }
    }

    class 冰箱 {
    public static void open() {
    System.out.println("打开冰箱门");
    }

    public static void close() {
    System.out.println("关闭冰箱门");
    }
    }

    class Demo {
    public static void main(String[] args) {
    冰箱调用开门
    大象调用进去
    冰箱调用关门
    }
    }

    4:开发,设计,特征
    面向对象开发
    就是不断的创建对象,使用对象,指挥对象做事情。

    面向对象设计
    其实就是在管理和维护对象之间的关系。

    面向对象特征
    封装(encapsulation)
    继承(inheritance)
    多态(polymorphism)

  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/canceler/p/4592474.html
Copyright © 2011-2022 走看看