面向对象的概述

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

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

  面向过程:强调的是每一个功能的步骤,有很多很多方法组成,这些方法相互调用,完成需求。
  面向对象:强调的是对象,然后由对象去调用功能。

  面向过程:如果做小的项目,则效率非常高,很快就能实现,但是后期维护非常麻烦。
  面向对象:如果做大的项目,则效率相对会低,但是代码结构性很好,后期维护容易。从这个方面来说,效率反而提高了。
-----------------------------------------------------------------------------
2:面向对象的思想特点:
  A:是一种更符合我们思想习惯的思想
  B:可以将复杂的事情简单化
  C:将我们从执行者变成了指挥者

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

    万事万物皆对象!

    家常事物、买洗衣机和去饭店太不划算了,所以,找个对象
-----------------------------------------------------------------------------
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)
=============================================================================

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
文件存储 开发工具 对象存储
oss文件存储上传提示UnknownHost
未知的名称或服务 [ErrorCode]: UnknownHost [RequestId]: Unknown
|
Arthas 监控 Java
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
本文探讨了Spring Boot如何实现像普通Java程序一样通过main方法启动,关键在于Spring Boot的自动配置、内嵌Servlet容器(如Tomcat)以及`SpringApplication`类。Spring与Tomcat集成有两种方式:独立模式和嵌入式模式,两者通过Servlet规范、Spring MVC协同工作。Spring和Tomcat的生命周期同步涉及启动、运行和关闭阶段,通过事件和监听器实现。文章鼓励读者从实现Tomcat中学习资源管理和生命周期管理。此外,推荐了Netty权威指南系列文章,并提到了一个名为mini-cat的简易Tomcat实现项目。
|
编解码 C语言
FFMPEG 获取视频PTS
FFMPEG 获取视频PTS
222 0
|
Java 关系型数据库 应用服务中间件
SpringBoot起步依赖及切换web服务器
SpringBoot起步依赖及切换web服务器
222 0
|
存储 编解码 缓存
FFmpeg之旅:深入解析FFplay源码
FFmpeg之旅:深入解析FFplay源码
1234 0
|
安全 Java 程序员
【Java】 如何优雅的做字符串的拼接
在 Java 中,我们都是如何的去做到一个字符串的拼接呢?字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起。都知道,String 是 Java 中一个不可变的类,所以一旦被实例化就无法被修改。那么我们怎么去优雅的拼接我们的字符串呢?老夫这里找了一堆的技术资料,基本上Java中的字符串的拼接都在这了。
21686 0
【Java】 如何优雅的做字符串的拼接
|
Java 应用服务中间件 API
SpringBoot集成Tomcat服务
基于SpringBoot的版本,Tomcat集成的是9.0版本,参考Tomcat核心组件描述,对于框架有大致的了解后,再去分析集成原理,会更容易把握主线逻辑;
599 0
SpringBoot集成Tomcat服务
|
Web App开发 Java
conflicts with existing, non-compatible bean definition of same name and class
使用 Idea CE 创建的 Maven Web 项目,启动时却输出以下错误: Connected to the target VM, address: '127.0.0.1:52165', transport: 'socket'  .
2424 0
|
前端开发 IDE JavaScript
【干货】前端开发者最常用的六款IDE
【干货】前端开发者最常用的六款IDE
1331 0