关于java面向对象编程和面向接口编程区别

author author     2023-04-28     251

关键词:

向大家问下关于java面向对象编程和面向接口编程思想区别,面向对象就是模拟真实世界,把真实事物抽象成类,操作实例..而面向接口编程了,好处...?主要的思想...?怎样去用面向接口的思维去开发一个程序...?

Struggle说得对。根本不是一个层次的东西。“面向对象思想”和“面向过程思想”相对,而“针对接口(抽象)编程”和“针对实现编程相对”。首先纠正楼主一个认识误区,任何编程思想都是在试图建立现实世界和计算机世界的“映射”。无论是面向过程还是面向对象或者是其它的什么思想,根本目的都是在计算机中建立现实世界的模型,通过模型的“沙盘推演”,达到解决现实问题的目的。宏观上说,无论是面向对象还是面向过程,都是一种世界观,是一种对世界的认知和划分。只不过面向过程的思想把世界划分为数据结构和函数,而面向对象的思想把世界划分为对象和方法。相对于面向过程的思想而言,面向对象思想和现实世界的“映射”更容易建立,所以现在面向过程的思想已经逐渐被面向对象的思想所取代(但是这绝不是说面向对象思想可以完全取代面向过程的思想)。c语言是面向过程思想的典范,而面向对象的思想的代表编程语言有Java和C++等(切忌语言和语法规则服务于编程思想)。任何的编程语言只是编程思想得以实现的载体。
面向接口编程本身是面向对象编程思想所提倡的一种编程规范。因为它能够最大限度的解耦,所谓解耦既是解耦合的意思,它和耦合相对。耦合就是联系,耦合越强,联系越紧密。在程序中紧密的联系并不是一件好的事情,因为两种事物之间联系越紧密,你更换其中之一的难度就越大,扩展功能和debug的难度也就越大。举个硬件例子,道理和软件相同
软盘你知道吧,骨灰级的存储工具,最初是3.5英寸的,后来变成了2.5英寸,无论哪一种,都采用软驱中的磁头读取软盘上的数据,而且存储能力都小得可怜,现在你已经很难再见到它们了。后来出现了光盘,工作原理和软盘相似,但是传输速度和存储容量都大大超过软盘。遗憾的是软驱是无法读取光盘的,硬件制造商不得不提供光驱来替代软驱。今天既是一个不懂电脑的人,也不会利用软驱读取光盘?为什么呢?起码软盘和光盘的直径就不一样,塞不进去,然而你不这么做根本原因不是因为它太过匪夷所思,而是软驱和软盘的紧密“耦合”使得软驱只能用来读取软盘。但是USB接口则不同,Intel睿智的设计者们提出了这种传输接口,它几乎能够接驳几乎所有你想得到的输入输出设备,现在无论你接驳的是外置的USB光驱,还是USB软驱,甚至是最新的比USB产生还要晚的面部识别系统他都恩那个够正常工作,硬件制造商们不需要再去费脑筋提出更新的“X驱”了。什么原因呢?因为USB接口是针对抽象“接口”设计的松耦合设备,USB接口的提供端并不知道也不需要知道接口的另一端是鼠标、键盘、摄像头还是其它的什么设备,它对任何传输进来的数据都采用相同的处理规则,管你是什么,你符合USB的传输方式我就支持你。这样你可以任意更换USB的另一端设备,而且你惊奇的发现他们都能够正常工作!软件编程也是一样,Java类库中这样的例子太多。比如Arrays.sort()方法,该方法是一个排序方法,需要利用Compareble接口的compareTo()方法,但是compareTo()方法没有任何实现,它需要你自己去编写,这是合理的因为计算机并不知道如何比较你定义的数据(是字典排序字符,还是大小排序阿拉伯数字或者其它的什么方式)。那就只好交给你自己来编写,sort方法是一个针对抽象接口Compareble编程的方法。,该方法只是专注于采用哪种排序方式,是冒泡排序还是快速排序,而不考虑具体两个对象的比较方式。具体的你最好看看api。总结一下针对接口编程给编写程序最大限度的解耦合,提供了最大的扩展性。它使得整个程序,不会因为局部的更改(无论是因为修正错误还是提供功能的扩展),而“牵一发而动全身”,造成整个软件必须重新编写。
参考技术A 应该是基于接口的编程,你不能把它和面向对象对立开来,面向对象的编程可以是基于接口的,目的是增强可重用性和可扩展性。可以说这是模块化编程的基础。Java 语言自带对接口的支持。你不用特别去纠结怎么去用,因为语言已经给你设计好了,该用到的时候自然会用到接口的。本回答被提问者采纳 参考技术B 主要是为了实现高内聚、低耦合,降低系统维护成本,建议找本设计模式的书看下,网上很多 参考技术C 支持1楼的回答! 参考技术D 1楼正解

面向接口编程详解——思想基础

我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经... 查看详情

面向接口编程详解——思想基础

我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经... 查看详情

c#中抽象类与接口的区别

1.面向接口编程和面向对象编程是什么关系首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程... 查看详情

面向接口编程和面向实现编程的区别

面向接口表示子类是实现接口或者抽象类,而面向实现表示继承普通类,明显前者耦合比较低,因修改代码比较低,因为接口和抽象类本身有的方法不干事情,而是子类去去实现,参考技术A这个涉及到设计上的原则,也就是依赖... 查看详情

面向对象编程和面向过程编程的区别总结

...象这些的各种属性各种便利后,真香。现在网络上有很多关于面向过程和面向对象区别的文档,都总结的很好,总结如下1、面向过程在解决问题的时候,会分析出解决问题的步骤,然后用函数一步步的将这些步骤实现,依次调... 查看详情

java面向对象

面向对象编程相对于面向过程编程而言1)面向过程和面向对象的区别 将面向过程编写的代码模块化,形成多个程序组件,最终拼装运行 面向过程编程方式代码冗余较多,维护和扩展成本高,不易开发大型程序 面向对象编程:在中大型... 查看详情

python入门-6面向对象编程:01面向对象和面向过程区别-对象的进化

面向对象:  面向对象(ObjectorientedProgramming,OOP)编程的思想主要是针对大型软件设计而来的。面向对象编程使程序的扩展性更强、可读性更好,使的编程可以像搭积木一样简单。  面向对象编程将数据和操作数据相关的... 查看详情

atitit面向对象编程(oop)面向组件编程(cop)面向方面编程(aop)和面向服务编程(sop)的区别和联系

Atitit面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系1. 面向组件编程(COP)所以,组件比起对象来的进步就在于通用的规范的引入。通用规范往往能够为组件添加新的能... 查看详情

廖雪峰java2面向对象编程-4抽象类和接口-2接口

抽象方法本质上是定义接口规范publicabstractclassPerson{publicabstractvoidrun();}publicclassStudentextendsPerson{@Overridepublicvoidrun(){}}publicclassTeacherextendsPerson{@Overridepublicvoidrun(){}}如果一个抽象类没有字段,所有方法全 查看详情

面向对象和面向过程的编程方式的理解

面向对象和面向过程的区别?如果说面向对象和面向过程的具体区别,最深入的地方应该是去看设计模式,推荐大话设计模式那本书,讲的比较好。本人只不过简单叙述下,重点是如何进行面向对象和面向过程的编程,只有会编... 查看详情

java基础面向对象编程

1.理解面向对象1.1面向对象程序设计(oop)  程序=对象+对象+。。。  数据第一,算法第二  关键:让每一个对象负责执行一组相关任务1.2.面向对象编程的特性  在java语言中,万物皆对象,  程序是一组对象彼此之... 查看详情

面向对面编程/面向切面编程/面向过程编程

面向对象编程java只能面向对象编程Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写... 查看详情

面向对象的编程思想和java中类的概念与设计

面向对象的编程思想学习,面向对象内容的三条主线;1.java类及类的对象2.面向对象的三大特征3.其他关键字学习内容:3.1面向对象与面向过程面向对象与面向过程在应用上的区别Java中类的概念与设计类与类之间的关系面向对象的... 查看详情

面向接口的开发到面向对象的编程

...是看过类似的博文之后才有了那么点点的了解。  一、面向接口的编程    面向接口的编程目的是为了更好的代码扩展,因为对于java语言而言允许向上转型。  二、面向对象的开发    对于java世界而言,所有现实... 查看详情

面向过程与面向对象编程的区别和优缺点

面向过程与面向对象编程的区别面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了... 查看详情

关于aop编程

什么是面向切面编程面向切面编程是一种编程范式,通过预编译方式和运行时动态代理实现程序功能的统一维护的一种技术他能解决特定问题,不能解决所有问题他是面向对象编程的补充,而不是替代扩展:常见编程范式1.面向... 查看详情

面向切面编程aop

 一,代理对象实现  1,静态代理      目标对象和代理对象都实现同一个处理接口,代理对象中引入了处理接口的构造方法,在不改变目标对象源码的同时,实现目标对象的方法添加额外的功能。   2,动态... 查看详情

面向对象编程java

面向对象编程【Java】1、初识面向对象2、方法回顾和加深方法调用3、对象的创建分析4、面向对象三大特性5、抽象类和接口6、内部类及OOP实战Java的核心思想就是OOP1、初识面向对象语句多了的话,提取出来,构造方法ÿ... 查看详情