我对面向对象的理解

怎么理解java面向对象 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 怎么理解Java面向对象,面向对象编程是当今主流的程序设计思想,已经取代了过程化程序开发技术,Java是完全面向对象编程语言,所以必须熟悉面向对象才能够编写Java程序。下面就来介绍一下什么是Java面向对象。   一、面向对象的概念   面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物使用对象的关系来描述事物之间的联系,这种思想就.. 阅读详情

在现实生活中遇到问题时,绝大数人都是按照次序思维来思考解决之道的。解决者往往先提出一套解决问题的步骤,这些步骤是有先后顺序的,这种顺序就是一种过程。在提出一套可行的解决方案后,依此先做什么、后做什么,往往能够解决问题。对于那些做得比较好的人,我们常称其做事有条理、有逻辑。

同样,在程序设计的世界里,程序员用程序设计语言来描述计算机解决问题的过程。面向过程的编程体现了程序员的逻辑性。如何设计语句的次序,如何组织函数、如何设计函数的参数、如何设计过程分支等等都体现了程序员的逻辑能力。在处理一个具体问题的时候,程序员的脑海里呈现出一套解决问题的步骤,这些步骤是有序、具逻辑性的。

但是,不同的人思考问题的方式不同,而且逻辑的创造能力和理解能力因人而异。不同程序员编程时的逻辑是不同的。当面对日趋复杂的应用系统时,处理问题的完整逻辑就很难理清。并且,即使公司上层理清他们的整套逻辑,提出了解决问题的步骤,其他人很可能不能完全理清这套方案的逻辑性。这在实际项目开发的过程中会带来很大的麻烦,不仅会拖慢项目的进度,而且可能会使软件产品出现逻辑错误。再者,这种面向过程的编程的程序一般情况下只能解决特定的问题,要照搬到其它系统中往往不怎么现实。

其实,再仔细分析可以发现,一个问题中总包含有客体。例如在一个学生信息管理系统中,客体无非就是学生和教职工。在自然界中,每个客体都有属性和行为。如学生有学号和年龄属性,有上课、考试行为。我们可以想到,解决问题的基本方式其实就是让这些特定客体之间相互作用,例如,上课就是老师教授学生知识。

有了这样的思想,面向对象的方法就产生了,并在上世纪90年代就得到了广泛应用。面向对象的方法解决问题的大致思路就是把事物客体抽象成类,每个对象都是属于该类的客体,在类中定义所属客体具备的共同的属性和行为;要促成事件时,只需根据类定义一个对象,再使用这个对象的行为。面向对象的本质是把事物客体看作抽象的对象,这会使复杂软件的开发变得更容易。但是,同时对程序员的能力要求更高了,尤其是抽象能力,即要求程序员能够把若干客体归结为一个具有特定属性和行为的类。

提到对象就不得不提到类。类是对具有相同属性和行为的对象的抽象,是属性与方法的集合。如全校的学生都有学号、都要上课,所以我们可以把所有学生抽象为一个学生类,相应的,教师有教工号、要授课,我们可以把所有教师抽象为一个教师类。在解决问题的过程中涉及到具体个体对象时,我们必须先遵从它所属类的格式,给个体对象赋予属性值以标识对象,之后就决定了该对象也具备了类里定义的行为和功能了。

我们知道,每种编程语言都定义好了若干基本数据类型,如整型、浮点型、字符型,那为什么在编程时还要创建新的“类”类型呢?实际上,现实生活中的客体往往不是用这些基本的数据类型就能表示的,而往往综合使用的各种数据类型。如为了表示一个学生,学生的基本信息由姓名、年龄、学号等。而且,在类上定义功能比在客体上定义功能要方便得多。如对于功能学生上课,面向过程的方法可能会给每个学生都定义上课功能,但在面向对象的方法中只需在类中定义学生共有的功能—上课,当一个学生对象创建时就具备了上课的功能。在具体编程时,我们还常为了实现数据的封装、提高数据的安全性,把类的属性声明为私有的,而把类的方法声明为公共的。这样,对象能够直接调用类中定义的所有方法,当对象想要修改或得到自己的属性的时候就必须要调用以定义好的专用的方法才能够实现即对象调方法,方法改属性。

面向对象的编程有封装、继承、多态三大特性。每个对象都包含了它能进行操作所需要的所有信息,因此对象不必依靠其它的对象来完成自己的操作,这样的特性叫封装。一般我们要新建一个“类”类型时就把该类型的属性和行为的定义封装在一个类中。继承的特点是,以一个子类格式创建的对象除具备子类中定义的属性和方法外,还具备该子类的父类中定义的一切属性和方法。继承的最大好处是可以实现代码复用,大大简化代码的书写。多态允许将父类对象设置成为和一个和多个它的子对象相等,父类对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父类对象具备了子类对象的方法。

很多情况下,我们会不知不觉的按照过程方式来解决问题,而不是考虑将要解决问题抽象为对象去解决它。面向过程的逻辑性能力对于每个程序员来说还是很重要的,因为绝大多数程序从大局看都是面向过程的。而对于模块的结构、功能的结构和函数的结构等都应该用面向对象的思维进行设计。从面向过程编程到面向对象编程是个思维方式提升的过程。当我们能从具体的程序抽象出对象,并能把这个对象用于其它程序,那么我们也能成为一名优秀程序员了。


一些地方是从别的博客看到的,别扔砖啊!

手把手完整实现STM32+ESP8266+MQTT+阿里云服务器+手机APP应用——第一节—阿里云物联网平台配置+IoTStudio界面绘制+MQTT.fx模拟MQTT客户端与使用AT命令发布订阅消息 通过MQTT.fx模拟连接以及通过CH340串口连接ESP8266发送AT命令,实现阿里云物联网平台发送数据同时接收数据,IOT studio界面显示数据。具体来说:使用ESP8266(本系列使用了ESP8266-ESP01/01S以及正点原子的ATK-ESP8266) 来连接网络,获取设备数据发送到阿里云物联网平台并显示数据,通过IOT studio界面显示数据并发送命令控制设备。本系列使用的主控芯片是STM32F103系列,当然也可以使用其他系列单片机都可以实现,思路都是一样的。同时本系列有手机APP源 阅读详情

相关推荐

无人机WIFI集群组网技术详解及成本分析

无人机WIFI集群组网技术是指利用无人机作为移动平台,通过集成高性能的WIFI模块,实现多架无人机之间以及无人机与地面控制站之间的无线通信组网。在协议层面,无人机WIFI集群组网需要遵循标准的无线通信协议,如IEEE 802.11系列(即WIFI标准),同时可能还需定制或优化路由协议、媒体访问控制(MAC)协议等,以确保高效、可靠的数据传输。数据安全与隐私保护:无人机集群组网中传输的数据可能涉及敏感信息,需采取加密、认证等安全措施,确保数据传输的安全性和用户隐私的保护。根据性能不同,价格差异较大。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1583

用简单的例子解释什么是面向对象

什么是面向对象OO:可以先看下 https://www.jianshu.com/p/224d8fc4d0f0 提起面向对象,肯定都会先想到三大特性:封装,继承,多态。那这三大特性具体怎么理解呢?可以先在脑子里过一下。 如题,举个栗子吧: 加入我们现在要把大象装进冰箱,面向过程的做法:打开冰箱门,把大象装进去,关上冰箱门。 面向对象的做法:冰箱是一个对象,大象是一个对象。冰箱拥有开门,关门的动作,...

Ybbb的博客 1万+

电池管理系统(BMS)系列(四)—数据采集之温度

属于BMS系列文章,介绍了电池包温度采集相关方式

zxx52113140的博客 5458

对面向对象的理解

本篇博客主要记录一些对面向对象的理解,基础是C++计算机二级优秀。主要包括面向对象的本质、特性、原则、关系、UML图

yxc_71411的博客 1585

CTFShow萌新区全攻略:从密码破解到Web渗透的实战解析

本文为CTFShow萌新区新手提供从密码破解到Web渗透的完整实战攻略。文章深入解析了密码学、隐写术、杂项和Web安全四大核心方向,分享了实用的解题工具、思维方法和绕过技巧,旨在帮助初学者建立系统的安全竞赛解题体系,而不仅仅是提供一份题解(WP)。

weixin_29216957的博客 298

阿里九宫格验证码 (Baxia SecCaptcha) 逆向工程与自动化求解

实现对阿里巴夏 (Baxia) 九宫格点击验证码的全自动求解模式说明依赖浏览器模式通过 Puppeteer/Playwright 控制真实浏览器,享有完整 DOM/Canvas/WASM 环境需要 Chrome/Chromium纯算模式脱离浏览器,通过 HTTP API + Node.js WASM 解密完成求解无需浏览器。

猫敷雪 378

什么是面向对象? 谈谈你对面向对象的理解

面试官提问:什么是面向对象? 谈谈你对面向对象的理解 面试题拆解: 这道面试题对于工作时间不是很长的Java程序员来说,出现频率是比较高的。 那么到底什么是面向对象呢?讲面向对象之前,需要先聊一下面向过程,并聊聊两者的区别。 再从面向对象的角度出发,聊聊面向对象的三大特性:封装、继承、多态。 面试题回答 下面是面试君对于这个面试题的回答,不一定全对,可具有一定的参考借鉴意义: 面试官你好,我来回答一下这个问题,对于什么是面向对象,它是一种编程思想。聊到面向对象,我们需要聊一下面向过程的编程方式

qfguan的博客 5万+

激光雷达点云配准:ICP与NDT算法详解

激光雷达点云配准:ICP与NDT算法详解​ ,人工智能,计算机视觉,大模型,AI,本文深入解析激光雷达点云配准的ICP与NDT算法。阐述了点云配准基础概念与评价指标,详解ICP算法原理、流程、最优变换矩阵计算、优缺点及改进版,给出Python代码示例;同样解析NDT算法的原理、流程、模型构建、优缺点、参数选择与代码示例。还对比两者在精度、效率、鲁棒性和适用场景的差异,提供算法选择建议,介绍实际应用案例、常见问题及解决方法,探讨算法发展趋势。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 15万+

如何理解面向对象

理解面向对象编程 从Rob Pike 的 Google+上的一个推看到了一篇叫《Understanding Object Oriented Programming》的文章,我先把这篇文章简述一下,然后再说说老牌黑客Rob Pike的评论。 先看这篇教程是怎么来讲述OOP的。它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设Unix很不错,Windows很差。 这个把下面这段代码描述成是Hacker Solution。(这帮人觉得下面这叫黑客?我估计这帮人真是没看过C语言的代码) public

Sen的博客 215

innovus获取mem pin shape box脚本

innovus mem 的pin shae只能通过attitude editor看属性获取其pin shape的box,但是想用脚本处理一定box时,没有别的办法能直接获取box属性。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1108

Python 爬虫实战:分析 AJAX 请求抓取搜狐新闻数据

在Web 2.0时代,大量网站采用AJAX技术实现动态内容加载。传统基于静态HTML解析的爬虫技术(如BeautifulSoup)已无法应对这类场景。本文将以搜狐新闻为实战目标,详解如何通过分析AJAX请求接口实现动态新闻数据的精准抓取。

yansideyucsdn的博客 1750

我所理解的面向对象

       说到面向对象,我们也许并不陌生,但是以我个人为例,总是有一种莫名其妙的感觉。自己在编程中确实能够隐约的感觉到它的存在,但是又无法具体说明她是什么样式的。今天我们简单总结一下,如果有不对的地方希望大家不吝指教,小弟将不胜感激~ 1、面向对象的基本概念     面向对象,这一概念已经有好多年的发展历史了。时至今日,我们仍然在使用着她,足见其魅力所在。面向对象是当今主流的一种设计规范...

weixin_33686714的博客 127

详解【异质图卷积网络 RGCN】回顾:图神经网络问题的三大处理步骤 | 从起源说起,RGCN核心公式解释,两种降低模型参数量/优化的方式,附核心代码实现讲解

本篇,我们深入分析和学习RGCN的原理以及为何要这么做。首先让我们来回顾对于图神经网络问题的三大处理步骤,可以说,这是该深度学习模型的基本理解,后续都是在深化其中的细节处理。然后以容易理解的方式,引出异质图卷积网络RGCN的由来,主要讲解其核心公式和论文中作者所提出的两种降低模型参数量/优化的处理办法,并给出基础分解以及块对角分解的核心实现代码讲解。最后附上RGCN源代码及说明。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1279

如何理解面向对象思想

我们学习JAVA语言必须要掌握对象和类,这样的话就可以更深层次的理解JAVA这种面向对象的程序开发理念,从而更好更快  地掌握JAVA的变成思想和方法。掌握类和对象是JAVA语言变成的基础。那么,问题来了,到底什么是对象和类呢? 一:对象 关于对象的理解其实非常简单。在我们的身边,每一种事物都是一种对象,统筹一句话概括就是,对象是事物存在的实体。例  如:电视、汽车、书桌、

LK764265808的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

理解面向对象,看这一篇就够了

导语 对于面向对象的理解,大多数的人都还停留在理解概念,但是在真正实现的过程中还是保持着面向过程的思想在开发和编写代码,下面我通过这篇博客重新梳理什么是面向对象。 一、面向对象的特征和基础 特征 封装、继承、多态 基础 抽象 二、为什么说面向对象的基础是抽象? 想要真正理解这句话,先看一下下面的这个问题: 如何理解下面这句话?这与面向对象的抽象有什么关系? 1)我们要注重多少人来干事,而不是干多少事。 2)我们要注重谁来干事,而不是怎么干事。 分析: 我们先从这两句话的字面意思来分析,我们在分析的过程中.

zwb的博客 924

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

谈谈我对面向对象的理解(易于理解)

初识面向对象 在大一的时候,老师说要理解面向对象的思想,这个非常重要。但是当时并不理解,就觉得类和结构体应该没什么差别啊,在c语言里面写个结构体,再把结构体,再定义结构体变量拿来用一样的。就觉得面向过程和面向对象好像并没有什么差别,只不过是编程习惯的差别。但是现在才发现那时的我太年轻了。 理解面向对象 为什么要有面向对象和面向过程这两种编程思想呢?从大家总把这两个词拿来对比就可以知道,这两种思想都是很重要的,而且都是有优缺点。 我将用易于理解的方式来讲讲我理解的面向对象和面向过程。 面向过程就好像是一套已经

qq_45806720的博客 456

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

面向对象的理解

面向对象的理解

sun13974259407的博客 365

python请简述面向对象的理解_如何最简单、通俗地理解Python的面向对象?

1. 通俗,简单,是不能学会编程语言的关于面向对象,初学者最感到困惑的莫过于类和对象, 而困惑的根源在于,初学者仍然没有建立起完整的编程概念,仍然喜欢将计算机的概念与通俗易懂的日常事务建立起对应关系,期初,这种方法是有效的,就像初中生学习英语单词时,用中文标注如何发音。但随着学习的深入,这种方法逐渐失效,因为体系逐渐复杂的,概念逐渐增加了,那些理解日常事务的方法,逐渐力不从心,因为日常事务不能建立...

weixin_39893893的博客 425

如何理解Java中的面向对象

       好几次面试都问到了这个问题,回答的也都不好,暂且总结一下:        我的理解是:面向对象是向现实世界模型的自然延伸,这是一种”万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。 &

qq_39309971的博客 2万+

对于面向对象的理解

1、类与对象的关系 类是一组相关的属性和行为的集合,是一个抽象的概念。 对象是该类事物的具体表现形式,具体存在的个体。 可将类理解为学生这一称谓,而对象则是具体的那个学生。 2、什么是面向过程 面向过程是一种流程化的模式,对于解决问题的方法,是采用分步骤,一步步的分析实现。 优点:性能好,消耗资源。 缺点:不易维护、不易复用、不易扩展。 3、相较于面向过程,面向对象有何区别 面向对象是一种调用第三...

bcdds的博客 182

java面向对象的理解_如何理解Java面向对象

如何理解Java面向对象Java是一种面向对象的程序开发语言,准确的理解java的面向对象才能更好更快地掌握JAVA的编程思想和方法,以下仅供参考!1、什么是对象?首先要说明一点,对象不是java的,事实上他只是一种概念,一种用于解决问题的程序设计的思想方法。要理解对象就必须得要和面向对象结合起来。在面向对象中把某一类事物所共有的属性和行为抽象出来之后就形成了一个类。而类的一个实际的例子就叫做对象...

weixin_34094559的博客 1199

怎么理解java面向对象_怎么理解JAVA的面向对象?

如果是初学者想要理清这个问题的话,就不能根据书中的抽象定义去理解,需要结合实际生活的将【面向对象】这个思维具象化才好理解。我们可以这样想,你是这个程序员,更是一位编程世界的"造物主",你现在需要使用"java"将一个世界从无到有的搭建起来。然而你虽然是个造物主,但你也只能根据自己的所见所闻来搭建这个java世界。而你自己的所见所闻就来自于现实社会,ok,这就是抽象与具象的转化基础。然后我们下一步将...

weixin_36331580的博客 221

java关于面向对象的理解

java关于面向对象的理解

m0_51758445的博客 696

请问你如何理解面向对象思想

面向过程的编程思想: 将大问题分解成小问题,最终可以以函数代码的形式表现出来。 面向过程的语言通常会为开发者提供大量的函数库解决问题。 缺点:不利于模拟现实世界 优点:解决问题时更加简便 面向对象的编程思想: 万物皆对象(所有的客观存在都是对象) 将现实世界中的事物模拟在程序当中,拥有现实世界的功能。 缺点:解决问题时需要先创建对象。 优点:更加贴近生活,解决问题的思路清晰。 ...

lysingsong的博客 729
上一篇: 2012百度之星初赛之C题:度度熊的礼物
下一篇: 微软850位顶级人才不做Windows研发
fsz521
博客等级 码龄16年 33粉丝 71原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值