面向对象是编程开发的一种编程范式。

这次我们来详细了解一下Java面向对象,面向对象的思想已经涉及到软件开发的各个方面,如:面向对象的分析,面向对象的设计、以及我们经常说的面向对象的编程实现

其余的一些更加详细的解释在这里我就不在描述了,在百度上已经非常详细啦。

面向对象是一种开发范式,既然是开发范式那就不得不说一下面向过程,通过两者的比对你将会更加了解这种开发范式。

学习教程推荐:

  • 1.北京高淇Java300集(Java强烈推荐)
    Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程_Java语言入门到精通

  • 2.JavaSE基础全套-从零开始进阶之大神(推荐)
    JavaSE知识基础全套-从0开始进阶大神_JavaSE基础知识体系从入门到精通框架_/JAVA基础/数组/OOP/集合/IO流

  • 3.Java全套课程-基础必备课程
    JAVA全套课程_Java入门_Java零基础必备_Java编程课程_Java核心基础_EasyUI_SSM整合框架_Redis_高并发—全套课程

  • 4.Java常用类基础实战
    日常推荐Java常用类基础实战_通俗易懂实战入门教程_Java八大常用类核心基础/Java包装类/String类

  • 5.Java基础入门必备数学知识【数据结构与算法】(推荐)
    Java基础入门必学知识数据结构与算法_Java数据结构与算法基础到进阶_Java面试常见数据结构和算法问题_排序算法_递归_折半查询_栈和队列_链表

  • 6.Java面向对象编程_OOP基础深入讲解
    Java面向对象编程重基础深入讲解_OOP面向对象Java基础干货分享/JavaSE/面向对象编程/OOP程序设计

  • 7.GOF23种设计模式-23中设计模式详解课程
    GOF23种设计模式讲解_Java gof23种设计模式详解课程_从单例到备忘录模式 23种模式详解

一、面向过程和面向对象

面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。

早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来越明显的显示出来,出现了面向对象思想并成为目前主流的方式。两者都贯穿于软件分析、设计和开发各个阶段,对应面向对象就分别称为面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)。C语言是一种典型的面向过程语言,Java是一种典型的面向对象语言。

我们来举例描述一下面向对象和面向过程:

例如:开车和造车

面向过程思想思考问题时,我们首先思考“怎么按步骤实现?”并将步骤对应成方法,一步一步,最终完成。 这个适合简单任务,不需要过多协作的情况下。比如,如何开车?我们很容易就列出实现步骤:

面向过程适合简单、不需要协作的事务,重点关注如何执行。

但是当我们思考比较复杂的设计任务时,比如“如何造车?”,就会发现列出1234这样的步骤,是不可能的。那是因为,造车太复杂,需要很多协作才能完成。此时面向对象思想就应运而生了。

面向对象(Oriented-Object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物?” 比如思考造车,我们就会先思考“车怎么设计?”,而不是“怎么按步骤造车的问题”。这就是思维方式的转变。

比如,我们用面向对象思想思考“如何设计车”:

天然的,我们就会从“车由什么组成”开始思考。发现,车由如下对象组成:

为了便于协作,我们找轮胎厂完成制造轮胎的步骤,发动机厂完成制造发动机的步骤;这样,发现大家可以同时进行车的制造,最终进行组装,大大提高了效率。但是,具体到轮胎厂的一个流水线操作,仍然是有步骤的,还是离不开执行者、离不开面向过程思维!

因此,面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。 但是,具体到实现部分的微观操作(就是一个个方法),仍然需要面向过程的思路去处理。

我们千万不要把面向过程和面向对象对立起来。他们是相辅相成的。面向对象离不开面向过程!

可以这样想每一个面向对象其中都夹杂的无数个面向过程,话题有些突兀但是本人理解还是可行的

如果上方你没有理解的话我们再来举个例子:

例如:蛋炒饭和盖浇饭

简单来说:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,就是在米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。

蛋炒饭肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。

蛋炒饭的好处是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。

到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。

盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。蛋炒饭将“蛋”“饭”搅和在一起,想换“蛋”“饭”中任何一种都很困难,耦合度很高,以至于“可维护性”比较差。软件工程追求的目标之一就是可维护性。面向对象的好处之一就是显著的改善了软件系统的可维护性。

列举这个例子同学你们对面向对象是不是有更加深入的了解?

面向对象和面向过程思想的总结

1.都是解决问题的思维方式,都是代码组织的方式。

2.面向过程是一种“执行者思维”,解决简单问题可以使用面向过程。

3.面向对象是一种“设计者思维”,解决复杂、需要协作的问题可以使用面向对象。

4.面向对象离不开面向过程:

  • 宏观上:通过面向对象进行整体设计

  • 微观上:执行和处理数据,仍然是面向过程。

二、理解类和对象

下面我们来进一步了解一下面向对象的知识体系。

人类所认知的世界,其实就是面向对象的(此对象可不是男女谈对象的彼对象呀)

比如现在让大家认识一下“天使”这个新事物,天使大家没见过吧,怎么样认识呢?最好的办法就是,给你们面前摆几个个天使,带翅膀的美女,让大家看,看完以后,即使我不说,大家下一次是不是就都认识天使了。

但是,看完几个天使后,我们总要总结一下,什么样的东东才算天使?天使是无数的,总有没见过的!所以必须总结抽象,便于认识未知事物!总结的过程就是抽象的过程。小时候,我们学自然数时怎么定义的?像1,2,3,4…这样的数就叫做自然数。 通过抽象,我们发现天使有这样一下特征:

1. 带翅膀(带翅膀不一定是天使,还可能是鸟人)

2. 女孩(天使掉下来脸着地,也是天使!)

3. 善良

4. 头上有光环

那么通过这4个具体的天使,我们进行抽象,抽象出了天使的特征,我们也可以归纳一个天使类。 通过这个过程,类就是对象的抽象。

类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。我们要造一个汽车,怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。

类:我们叫做class。 对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。

在举个例子我们在来详细了解一下:英雄联盟、王者荣耀中的类和对象

英雄就是类,具体的英雄,盖伦、提莫是对象。

总结:

类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。

以上就是本章节所讲述的全部内容啦,稍后我在更新后续哦,喜欢的伙伴支持一下哦~

感谢观看~

Java入门姿势【面向对象:1】啥事面向对象、类和对象如何理解相关推荐

  1. Java入门姿势【面向对象4】 static关键字

    上次我为大家写出啦"构造方法及其重载_方法的调用",上篇文章代码可能较多,如没有了解透彻的话请打开下方文章在进行观看一下哦!! [Java入门姿势[面向对象3]构造方法及其重载_方 ...

  2. Java面向对象编程篇1——类与对象

    Java面向对象编程篇1--类与对象 1.面向过程 1.1.概念 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 1.2.优缺点 优点:性 ...

  3. 谈谈我对面向对象以及类与对象的理解

    对于刚接触JAVA或者其他面向对象编程语言的朋友们来说,可能一开始都很难理解面向对象的概念以及类和对象的关系. 面向对象 首先,一言不和先百度,得到如下定义: 一切事物皆对象,通过面向对象的方式,将现 ...

  4. C++编程入门系列之十四(类与对象:构造函数和析构函数)

    C++编程入门系列之十四(类与对象:构造函数和析构函数) 鸡啄米上一节中给大家讲解了类的声明.成员的访问控制和对象,今天鸡啄米给大家讲C++编程入门时同样必须掌握的构造函数和析构函数.从上一讲开始已经 ...

  5. java写一个外网访问的接口_【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖、抽象和接口概念及区别(中篇)...

    0 前言 初学JAVA时,总会对一些概念一知半解,相互混淆,不明其设计的用意,如类.对象.重载.封装.继承.多态.覆盖.抽象类.接口概念.为便于理解和巩固,本文将基于一个案例及其变形,展现各个概念的定 ...

  6. 反射创建对象_如何应用Java反射技术灵活地创建程序类的对象实例

    软件项目实训及课程设计指导--如何应用Java反射技术灵活地创建程序类的对象实例 1.如何应用属性配置文件实现对系统中的配置信息进行读写操作 Java中的属性配置文件主要可以作为软件应用系统及项目的配 ...

  7. JAVA面向对象(OOP)-类和对象

    1.面向对象与面向过程 面向过程: 优点: 代码直观,相对容易看出代码走向,我们是根据功能去直接开发 自上而下 缺点: 代码的维护与扩展.再次利用比较困难 面向对象 优点: 代码相对易维护,相对易扩展 ...

  8. 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)

    面向对象编程 1 面向对象与面向过程 1.1 java类及类的成员 2 java语言的基本元素:类和对象 2.1 类的语法格式 2.2 创建Java自定义类 2.3 对象的创建及使用 3 类的成员之一 ...

  9. 《java入门第一季》之面向对象

    之前的代码描述都是基于面向过程的,今天开始正式进入面向对象的世界.什么是对象?首先要区分类和对象的概念-- 现实世界中是如何描述一个事物的? 举例:学生 姓名,年龄,性别... 学习,吃饭,睡觉 属性 ...

最新文章

  1. WSDL、SOAP、UDDI
  2. 生活随笔:人的追求和差异
  3. Python PIL.Image和OpenCV图像格式相互转换
  4. java pdf 书签_Java PDF书签——添加、编辑、删除、读取书签
  5. echarts如何获取后端的值_散户必读:当你中线看好一只股票后,该如何操作才能获取最大利润...
  6. Camparable与Comparator之区别
  7. php电子邮箱表单,带邮件发送功能的表单(form.php)
  8. Echarts数据可视化series-map地图,开发全解+完美注释
  9. 浏览器了解(五)资源加载顺序
  10. php preview,preview.php
  11. Notification详解(含工具类)
  12. Excel-VBA 快速上手(一、宏、VBA、过程、类型与变量、函数)
  13. 计算机三级数据库技术 知识点
  14. word2019加载mathtype
  15. 计算机思维发展阶段,巩固计算思维是每个教育阶段的重要目标。
  16. java实现图片文件上传下载_java实现文件的上传和下载
  17. 网络安全先驱传奇大佬自杀了,他的一生足够拍成一部电影
  18. ip.php是什么意思,有人频繁试探云主机的 ip_js. PHP 是什么操作?
  19. 机器学习【吴恩达|周志华|李宏毅|算法】清单
  20. sudo chmod -R 777

热门文章

  1. 牛客网多校训练 德玛西亚万岁
  2. Window永久关闭默认共享
  3. xp系统打印机服务器报错,XP系统使用打印机弹出Spoolsv.exe 应用程序错误怎么办...
  4. 机器人二弟_LOL“60岁亚索”走红,带孙女直播人气突破50万,炫神:他真的很强...
  5. UE4动画雨滴材质制作教程
  6. 智慧园区水电监测系统
  7. 深圳前海和后海的地理位置划分
  8. 新手如何利用wordpress建立一个自己的网站
  9. 抖音视频剪辑书单号的新创作方向
  10. 比较好的国外外包网站(转)