面向对象技术

面向对象和面向过程的区别

  1. 出发点不同。
    面向对象强调问题域的要领直接映射到对象和对象之间的接口上,是用符合常规思维的方式来处理客观世界的问题。
    面向过程方法强调的则是过程的抽象化和模块化,是以过程为中心构造或处理客观世界问题的。
  2. 层次逻辑关系不同。
    面向对象方法以对象的集合类作为处理问题的基本单位。面向对象方法是用类的层次结构来体现类之间的继承和发展。用计算机逻辑来模拟现实世界中的物理存在。
    面向过程方法处理问题的基本单位是能清晰准确地表达过程的模块,用模块的层次结构概括模块或模块间的关系与功能,把客观世界的问题抽象成计算机可以处理的过程。
  3. 数据处理方式和控制程序方式不同。
    面向对象方法将数据与对应的代码封装成一个整体,对象的修改只能由自身的成员函数完成,控制程序方式上是通过“事件驱动”来激活和运行程序。
    面向过程方法是直接通过程序来处理数据,处理完毕后可显示数据结果,在控制程序方式上是按照设计调用或返回程序,各模块之间存在者控制与被控制、调用与被调用的关系。
  4. 分析设计与编码转换方式不同。
    面向对象方法贯穿于软件生命周期的分析、设计及编码中,是一种平滑过程,从分析到设计再到编码是采用一致性的模型表示,即实现的是一种无缝的连接。
    面向过程方法强调分析、设计及编码之间按规则进行转换,贯穿于软件生命周期的分析、设计及编码中,实现的是一种有缝的连接。

举一个对象和过程的例子。
人:人的身高体重性别年龄,会直立行走会读书吃饭。
电脑开机的过程。

面向对象的特征

抽象、继承、封装、多态。

组合和继承的区别

组合和继承都是面向对象中代码复用的方式。
组合是指在新类里面创建原有类的对象,重复利用已有类的功能。
继承是面向对象的主要特性之一,可以根据类的实现来定义一个类的实现。
组合和继承都允许在新的类中设置子对象,只是组合是显式的,继承则是饮食的。
组合和继承存在着对应关系:组合中的整体类和继承中的子类嘴硬,组合中的局部类和继承中的父类对应。
二者的区别通过分析一个实例来说明:Car表示汽车对象,Vehicle表示交通工具对象,Tire表示轮胎对象。Car是Vehicle的一种,是继承(is-a关系);而Car包含了多个Tire,因此是一种组合关系(has-a关系)。
写代码的时候,选择原则:
(1)除非是“is-a”的关系,否则不要轻易选择继承,因为过多地使用继承会破坏代码的可维护性,当父类被修改时,会影响所有继承它的子类,从而增加程序的维护难度与成本。
(2)如果类没有“is-a”的关系,可以通过实现接口与组合的方式来达到相同的目的,采用接口与组合的方式具有更好的可扩展性。
由于Java语言只支持单继承,如果想同时继承两个类或多个类,在Java 中是无法直接实现的。同时,如果继承太多,在一个class里会显得臃肿不堪。所以,能用组合就尽量不要用继承。

多态

同一个操作,在不同的对象时,会有不同的意义,产生不同的效果。
例如,同样是“+”的操作,“3+4”用来实现整数相加,“3”+“4”用来实现字符串连接。
多态有两种表现形式:

  • 方法的重载,是一种编译时多态。重载是同一个类中可能有多种同名的方法,在编译时可能会选择不同的方法。重载可看成一个类中方法的多态性。
  • 方法的覆盖,是一种运行时多态。子类可以覆盖父类的方法,同样的方法在子类和父类中有不同的表现形式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ad09只在一定范围内查找相似对象_23、面向对象编程

目录:对象的概念类与对象面向对象编程类的定义与实例化属性访问类属性与对象属性属性查找顺序与绑定方法小结视频链接一 对象的概念”面向对象“的核心是“对象”二字,而对象的精髓在于“整合“,什么意思?所有的程序都是由”数据”…

java开发工程师转行可以做什么

前言 分布式事务主要解决分布式一致性的问题。说到底就是数据的分布式操作导致仅依靠本地事务无法保证原子性。与单机版的事务不同的是,单机是把多个命令打包成一个统一处理,分布式事务是将多个机器上执行的命令打包成一个命令统一处理。 MySQL 提供了…

atlas怎么看日志_亿级的日志治理!微服务最佳方案,ELK stack从零搭建

ELK Stack 诞生背景一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理…

Java变量类型

所有的变量在使用前必须声明。 type identifier [ value][, identifier [ value] ...] ; 格式说明:type是数据类型,identifier是变量名,可以使用逗号隔开来声明多个同类型变量。 一下列出一些变量的声明实例,有些包含了初始化过…

java开发工程师面试问题大全及答案大全

前言 Alibaba作为国内互联网行业的“老大”,一直以来也是很多“数码宝贝”梦寐以求的公司,我个人是做Java开发的,阿里这些年也开发了很多屌炸天的开源项目,像什么Spring Cloud Alibaba,开源Java诊断工具Arthas&#x…

me shy是什么歌 抖音make_内含活动福利 | 小红书、抖音爆赞的高颜值的北欧家居神店开到卜蜂中心啦!...

几个月前,一家北欧范颜值爆表的瑞典独立设计师品牌家居店凭借其充满设计感的产品刷爆社交媒体微博、小红书、抖音经常出现它的身影随便一篇阅读量、收藏量都好几万数不清的爆like让人按耐不住了!这个品牌叫NǑME家居(认住这个正版的Ǒ),开到哪…

java开发工程师面试题及答案

前言 作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上,My…

吕玉琴考研指导电子版_【干货大放送】中国历代文学作品选阅读指导PDF

跟紧我,来年轻松收获录取通知书~长按一战成硕hello,我是小致带你考研上路今天给大家分享的干货内容是《历代文学作品选》阅读指导之前1000题浓缩资料,后台回复【浓缩】获取不要再留邮箱了,直接后台获取本次资料由致远文学考研原创…

java开发工程师面试题总结

一、背景 我们日常在电商网站购物时经常会遇到一些高并发的场景,例如电商 App 上经常出现的秒杀活动、限量优惠券抢购,还有我们去哪儿网的火车票抢票系统等,这些场景有一个共同特点就是访问量激增,虽然在系统设计时会通过限流、异…

Java重写和重载

重写(Override) 重写是子类重写父类的方法,如果重写了父类的方法,访问时父类的方法就会被覆盖,如果想要再访问父类的同名方法,要用super关键字。重写的好处在于子类可以根据自己的需要,定义特定…

7天拿到阿里Android岗位offer,都是精髓!

食用指南 和大部分人一样,我在复习完第一遍Android知识的情况下,看到相关的知识回答的仍然不能够令自己满意。 在第二遍系统复习的时候,我着重记住每个知识点的关键字,根据这些关键字拼凑出大概的知识点,最后看到每个…

kafka 重新分配节点_Kafka控制器-分区重分配

分区重分配指的是将分区的副本重新分配到不同的代理节点上。如果ZK节点中分区的副本的新副本集合和当前分区副本集合相同,这个分区就不需要重新分配了。分区重分配是通过监听ZK的 /admin/reassign_partitions 节点触发的,Kafka也提供了相应的脚本工具进行…

7天拿到阿里安卓岗位offer,统统给你解决!

开头 技术的发展产生了程序员这个职位,从这些年各大互联网公司曝光的一些员工收入水平来看,程序员的工资还是相对比较高的,可是我们在互联网上还听到了另外一种声音,很多程序员想转行,特别是大龄程序员,这…

python mysqldb 查询不到最新记录_python – MySQLdb是否缓存SELECT结果?

我正在循环中运行SELECT查询.偶尔,数据库表会更新(由另一个程序).第一个SELECT检索正确的数据,但循环中的其他调用返回第一个值.如何检索最新数据?到目前为止我找到的唯一解决方法是在每次迭代时重新连接到数据库!在我的例子中,取消注释#1#和#2#的注释.仅…

7天拿到阿里安卓岗位offer,附高频面试题合集

前言 众所周知,Android是一个基于Linux实现的操作系统。但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别。 所以Android也需要运行环境,需要Linux内核在启动完…

找零钱问题

最近在做华为机试体验题,遇到一个“找零钱”的题目,如下 想起之前在牛客网上看到左程云老师讲过的动态规划问题,很像,题目如下: 有数组penny,penny中所有的值都为正数且不重复。每个值代表一种面值的货币&…

vga焊接线顺序_焊接工艺问答,不做焊接也要收藏起来

点 机械前沿”关注置顶引领机械前沿、机械视频,汽车、加工技术、3D打印、自动化、机器人、生产工艺、轴承、模具、机床、钣金等行业前沿在这里等你 焊接工艺问答1.什么叫焊接条件?它有哪些内容? 答:焊…

7年老Android一次操蛋的面试经历,挥泪整理面经

看到还有很多程序员连面试流程都没有彻底弄清楚,今天,我们以阿里为例,来聊聊互联网大厂的面试流程和过程! 本篇主要还是聊聊社招的面试过程!阿里以及其他的互联网大厂的技术类社招面试,通常情况是 4 个轮次…

gin context和官方context_Go Web 小技巧(一)简化Gin接口代码

不知道大家在使用 Gin 构建 API 服务时有没有这样的问题:参数绑定的环节可不可以自动处理?错误可不可以直接返回,不想写空 return, 漏写就是 bug本文通过简单地封装,利用 go 的接口特性,提供一个解决上述两个问题的思路一、解决过…

7年老Android一次操蛋的面试经历,深度好文

Java基础 Java Object类方法HashMap原理,Hash冲突,并发集合,线程安全集合及实现原理HashMap 和 HashTable 区别HashCode 作用,如何重载hashCode方法ArrayList与LinkList区别与联系GC机制Java反射机制,Java代理模式Jav…