《Java语言导学(原书第6版)》一一2.1 对象

简介: 本节书摘来自华章出版社《Java语言导学(原书第6版)》一 书中的第2章,第2.1节,作者:[美] 雷蒙德·盖拉多(Raymond Gallardo) 斯科特·霍梅尔(Scott Hommel) 索亚·坎南(Sowmya Kannan) 琼尼·戈登(Joni Gordon) 沙伦·比奥卡·扎卡沃(Sharon Biocca Zakhour) 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.1 对象
对象是理解面向对象技术的关键概念。生活中有很多对象的例子,如狗、桌子、电视机、自行车等。
生活中的对象都有两个共同的属性:状态和行为。狗有名字、颜色、品种等状态,以及犬吠、抓东西、摇尾巴等行为。自行车有当前档位、当前脚踏频率、当前速度等状态和换档、变换踏板频率、刹车等行为。根据面向对象编程的思路来确定生活中对象的状态和行为是很好的方法。
前面已经介绍了生活中的几个对象。对每个对象,都有两个问题:“它处于什么状态”和“它会发生什么行为”。仔细观察并写下这些状态和行为,会发现生活中的对象差别很大。例如,台灯只有两个状态(开、关)和两种行为(打开、关闭),而收音机有其他状态(开、关、当前音量、当前电台)和行为(打开、关闭、提高音量、降低音量、搜索、扫描、调频)。而且,有些对象还包含其他对象。这些观察结果都可以翻译成面向对象程序。
就概念而言,软件对象与生活中的对象类似,也包含状态和行为两大属性。如图2-1所示,软件对象用字段(field,有些程序语言称为变量,variable)存储状态,用方法(method,有些程序语言称为函数,function)定义行为。方法对对象的内部状态进行操作,是对象之间通信的基本机制。这种隐藏对象内部状态,要求所有通信都通过对象的方法实现的行为,是面向对象编程的基本原则,通常称为数据封装。
图2-2以自行车为例来说明。外界如何使用对象,取决于其状态(当前档位、当前脚踏频率、当前速度)和改变状态的方法。如果自行车只有6个档位,就不能将其换成低于1或大于6的档位。
   
    image

将代码构建成独立的软件对象,具有以下优点:
1)模块化。每个对象的源代码,其编写和维护都独立于其他对象。对象一旦创建,就很容易在系统内传送。
2)信息隐藏。用户只能与对象的方法交互,对象的内部实现细节对外界是隐藏的。
3)代码重用。如果对象已经创建(可能是其他开发人员编写),就可以直接使用该对象。这样一来,写程序时就可以直接调用那些由专家实现、测试和调试通过的复杂、特定功能的对象。
4)可插拔和易于调试。当个别对象出问题时,可以将其从程序中移除,并插入另一个对象来替换它。这与现实生活中的维修机制类似。比如说,机器的螺栓坏了,只需更换该螺栓,而不需要更换整台机器。

相关文章
|
网络协议
Wireshark 捕获和显示过滤器
Wireshark 捕获和显示过滤器
552 0
|
供应链 监控 数据可视化
物联网技术在物流与供应链管理中的应用与挑战
本文探讨了物联网技术在物流与供应链管理中的应用,通过实时追踪、信息共享、智能化决策等手段,大幅提升了管理效率和智能化水平。特别介绍了板栗看板作为专业可视化工具,在数据监控、分析及协同作业中的重要作用。未来,随着技术的进一步发展,物流与供应链管理将更加智能高效,但也面临数据安全、标准化等挑战。
1183 2
|
人工智能 数据可视化 专有云
阿里云飞天企业版获评2024年AI云典型案例
近日,由全球数字经济大会组委会主办、中国信息通信研究院和中国通信企业协会承办的“云·AI·计算国际合作论坛”作为2024全球数字经济大会系列活动之一,在北京举办。论坛以“智启云端,算绘蓝图”为主题,围绕云·AI·计算产业发展、关键技术、最佳实践等展开交流讨论。阿里云飞天企业版异构算力调度平台获评2024年AI云典型案例。
854 3
|
Web App开发 JSON 自然语言处理
fastchat与autogen使用要点澄清
fastchat与autogen使用要点澄清
|
机器学习/深度学习 资源调度 自动驾驶
OFDM:赋能5G通信的基石
OFDM:赋能5G通信的基石
1477 3
|
数据采集 Python 数据可视化
[Python] 数据预处理(缺失值、异常值、重复值) [相关方法参数说明、代码示例、相关概念](三)
[Python] 数据预处理(缺失值、异常值、重复值) [相关方法参数说明、代码示例、相关概念](三)
|
机器学习/深度学习 人工智能 搜索推荐
如何让你的Uno Platform应用秒变AI大神?从零开始,轻松集成机器学习功能,让应用智能起来,用户惊呼太神奇!
【9月更文挑战第8天】随着技术的发展,人工智能与机器学习已融入日常生活,特别是在移动应用开发中。Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 开发跨平台应用(涵盖 Windows、macOS、iOS、Android 和 Web)。本文探讨如何在 Uno Platform 中集成机器学习功能,通过示例代码展示从模型选择、训练到应用集成的全过程,并介绍如何利用 Onnx Runtime 等库实现在 Uno 平台上的模型运行,最终提升应用智能化水平和用户体验。
471 1
|
运维 监控 安全
Docker的优点
Docker的优点
874 1
|
弹性计算 大数据 测试技术
阿里服务器租用多少钱一年_阿里云服务器租用收费标准价格表(2024年更新)
阿里服务器租用多少钱一年?2024年阿里云服务器租用费用已更新。阿里云服务器分为轻量应用服务器和云服务器ECS,轻量适合个人开发者使用,搭建轻量级的网站、测试环境使用,专业级如大数据、科学计算、高并发网站等需要使用云服务器ECS。阿里云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置。
1317 4
|
数据安全/隐私保护 开发者 Python
【亮剑】介绍了Python中将数字转换为字母的三种方法
【4月更文挑战第30天】本文介绍了Python中将数字转换为字母的三种方法:1) 使用ASCII码,通过计算字符对应的ASCII值进行转换;2) 利用内置函数`chr`和`ord`,使代码更简洁;3) 使用第三方库`pyfiglet`,生成美化后的字母。每种方法都有其适用场景,开发者可根据需求选择合适的方法。
1793 0