问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 什么是面对对象编程

发布网友 发布时间:2022-04-20 23:47

我来回答

5个回答

热心网友 时间:2023-06-21 11:37

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。总结一下针对接口编程给编写程序最大限度的解耦合,提供了最大的扩展性。它使得整个程序,不会因为局部的更改(无论是因为修正错误还是提供功能的扩展),而“牵一发而动全身”,造成整个软件必须重新编写。

热心网友 时间:2023-06-21 11:37

这个是相对于面向过程而说的,举个例子,以前我们写一个取钱程序大概是这样的过程:
1、输入100,int money=100;2、调用取款函数boolean cwd(int money),把100传入;3、取款函数返回OK,表示取款成功,否则取款失败;4、程序结束。

面向对象的编程,步骤如下:
1、定义一个取款机对象class ATM,具备取款能力(也就是有取款这个方法,boolean cwd()),同时具备金额这个属性(int money)
2、这时候,如果你要取钱,做以下步骤:1)输入100;2)创建对象ATM;3)把100赋值给ATM的属性money;4)执行ATM的方法cwd;5)后续判断和前面一样。

面向对象的编程,最根本的是要把一个程序分解成多个对象,对象有能力和属性,靠这些对象的能力和属性来实现程序的目的,虽然有点抽象,但是如果你的面向过程的程序写的很好的话,学习面向对象的编程是没什么问题的,适应一下就好了。

热心网友 时间:2023-06-21 11:38

把所有东西都看成是对象,每个对象都有自己的属性和方法。
面向对象是相对于面向过程来说的。
我之前看的一个视屏中的老师举了一个例子,在盖房子的时候面向过程就是把土和石头直接活在一起,然后堆成一个房子,而面向对象是,现用土做成砖头,石头做成水泥,然后再做房子。

C语言是面向过程的,就是你解决问题的思路是按照定义数据,对数据一步步处理的过程,数据和方法(数据处理函数)是分开的。

C++ JAVA等是面向对象的,对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。

面向对象编程将数据和方法封装在一个整体(类)里面,通过定义一个类,将一系列具有相同抽象概念的事物的共同特性概括起来,并在类中定义对数据的处理方法。

热心网友 时间:2023-06-21 11:38

C语言是面向过程的,就是你解决问题的思路是按照定义数据,对数据一步步处理的过程,数据和方法(数据处理函数)是分开的。
JAVA是面向对象的,对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。
面向对象编程将数据和方法封装在一个整体(类)里面,通过定义一个类,将一系列具有相同抽象概念的事物的共同特性概括起来,并在类中定义对数据的处理方法。

其实你现在不必刻意知道什么叫面向对象,你只要随着学习的深入会慢慢理解的。

这个可以举例说,比如你们班有20个学生,那么学生就是一个类,而你们班的具体每一个学生就是一个对象。

java就目前而言,跨平台是比较广的。

热心网友 时间:2023-06-21 11:39

要解释面向对象,首先你要理解面向过程的弊端,面向过程关注与问题的某一点,而不具备通用性,当同样问题出现时,只能再重复做一遍。
而面向对象,则是把问题集中在某一类事物上,即当解决某一问题时,同类的问题也一并解决掉。
不知道这样够通俗不。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
王卡专属免流包是什么意思 腾讯王卡专属流量是什么意思 人防临空墙排烟机房可以留洞吗? 瑞士转机的问题? 雅阁、第九代凯美瑞、迈腾,大空间的中级车推荐 云顶之弈双人排位介绍 金铲铲之战 金铲铲段位相差多少可以一起打? 现在上海办理居住证需要本人去吗 34周加5天是几个月 孕34周是几个月了 孕34周如何预防早产 面向对象的语言主要有哪些 java是不是纯面向对象的语言?? Java面向对象编程(OOP)是怎么理解? 什么是java面向对象编程? java面向对象程序设计的基本特征是 Java到底是一门怎样的编程语言? 什么视频软件可以看电视台的直播 电视台直播软件哪个好 请问一下有人知道有什么电脑软件可以免费看电视台... 榴莲怎么挑才最好?如题 谢谢了 如何挑选好的榴莲? 榴莲该怎么挑选才是靓榴莲 如何挑好一个美味的榴莲,了解挑选的方法很重要 榴莲怎么选?? 在水果市场上,怎样挑选榴莲? 榴莲怎么样挑选? 怎样挑选榴莲? 怎么挑选榴莲的金枕、甲仑和青尼品种 宽领带和窄领带的区别 如何打 领带 java是面向对象还是面向过程 为什么说java是面向对象编程语言,面向对象和面向... 为什么说Java是纯粹的面向对象语言? Java是纯面向对象的语言吗 管制俘获的介绍 金融脆弱性理论与管制俘获理论的区别 规制经济学的理论 金融监管理论 什么是产业组织经济学 金融监管的理论解释有哪些及其内容 如何减少因多重监管机构,职能重叠导致低效率带来... 论文求教 银行监管方面的论文 梁小民的著作简述 航空管制 是什么意思啊? 我想成为一名航空管制员,我该怎么完成? 我国产业规制模式的选择及实现路径 天猫付尾款的时候可以合并付款吗 用管制理论,分析劳动力市场上,最低工资要求是否政... 通过解放思想,如何解决垄断问题