【翻译】The Java Tutorial中的Object概念

简介:
原文链接地址:

原文:

What Is an Object?

An object is a software bundle of related state and behavior. Software objects are often used to model the real-world objects that you find in everyday life. This lesson explains how state and behavior are represented within an object, introduces the concept of data encapsulation, and explains the benefits of designing your software in this manner.
翻译:
什么是对象?
    对象是与状态和行为有关的程序块。程序中的对象都经常被当作现实世界中的事物对象的虚拟模型,这些对象都是我们生活中的常见的事物。这节课程将会告诉你,在对象中属性和行为是怎样表现的,并介绍 数据封装 的概念,以及解释像这样做对于你的程序有什么好处。
    “对象”是理解面向对象技术(object-oriented technology)的关键。现在看看周围,你会找到很多现实世界中的对象:你的狗,你的桌子,你的电视机还有你的自行车。
 
       现实世界中的对象有两个特性:它们都有状态(state)和行为(behavior)。狗有自己的状态(名字、颜色品种、是否饥饿),有自己的行为(脱毛、取东西、摇尾巴)。自行车也有自己的状态(齿轮是否灵活、踏板的节奏、当前的速度),也有自己的行为(替换齿轮、替换踏板、刹车)。要按照面向对象设计程序最好的办法就是在现实世界中确定对象的状态和行为。
        现在花几分钟去观察现实世界中的对象,它们就在你的周围。对于每一个你看到的对象都对自己提两个问题:“在这个对象中可能的状态是什么?” 和 “这个对象可能会有什么样的行为?”。确定下来并且写下你所观察到的。正如你所做的,你会发现现实世界中的对象变化有多么复杂;你桌上的灯可能有两个状态(开着、关着),还有可能有两个行为(打开、关闭),但是你桌上的收音机也许还有另外的状态(开着、关着、当前的音量、当前的配置) 和行为 (打开,关闭、增加音量、降低音量、查找、扫描、音调)。你也许也注意到了这样的对象,依次,也会包括那样的对象。这些现实世界中的观察事物都能够被引入到面向对象的世界中。
       
        一个程序中的对象
        程序中的对象与现实世界中对象的概念相同:都由状态和相关的行为构成。对象以字段fields(程序中的变量)存储状态 和 通过方法methods(程序中的函数)揭示行为。方法控制对象的内在状态以及通过自己私有的机理为对象之间建立联系。隐藏内在状态和通过对象的方法,这些方法是被封装起来的,可以完成所有的交互。数据封装是面向对象程序设计的基本理念。
 
        考虑一下自行车,比如:
 
 
        自行车被想象为程序的一个对象
        通过归结的状态(当前速度、当前踏板的频率和当前齿轮)和为了改变状态所提供的方法,在其外也可以允许使用它来控制对象。打个比方,如果自行车有6个齿轮,通过一个改变齿轮的方法可能会丢弃一个或六个齿轮。
 
         将代码添加到私有的对象当中有这么几个好处:
1.模块性:
        针对一个对象的代码就不依赖于其他的对象代码。一旦创建,这个对象就很容易地传递到系统当中。
2.信息隐蔽性:
         通过与对象方法相结合,内在详细的执行信息就不会显露在外面了。
3.代码复用性:
         如果对象一旦存在(也许是有其他软件开发人员编写的),你就可以在你的项目中使用。这允许专家们去实现、测试和调试复杂的和特定的对象,这些对象只要你认为可行,你就可以添加到你的代码中去。
4.塞入和调试容易:
        如果有一个对象有问题,你可以很容易地从你的应用中祛除,并且可以用其他的对象代替。这类似于在现世界中确定机器的问题一样。如果门闩坏了,你就把它更换了,而不是更换整个机器。









本文转自 sundunjam 51CTO博客,原文链接:http://blog.51cto.com/sunspot/132438,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
10天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
49 4
|
16天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
31 1
|
1月前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
|
2月前
|
监控 算法 Java
深入理解Java中的垃圾回收机制在Java编程中,垃圾回收(Garbage Collection, GC)是一个核心概念,它自动管理内存,帮助开发者避免内存泄漏和溢出问题。本文将探讨Java中的垃圾回收机制,包括其基本原理、不同类型的垃圾收集器以及如何调优垃圾回收性能。通过深入浅出的方式,让读者对Java的垃圾回收有一个全面的认识。
本文详细介绍了Java中的垃圾回收机制,从基本原理到不同类型垃圾收集器的工作原理,再到实际调优策略。通过通俗易懂的语言和条理清晰的解释,帮助读者更好地理解和应用Java的垃圾回收技术,从而编写出更高效、稳定的Java应用程序。
|
3月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
3月前
|
Java Docker 微服务
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
85 1
|
3月前
|
存储 安全 搜索推荐
深入探讨Session和Cookie的概念、用途以及如何在Java Web开发中有效地使用它们进行用户状态管理。
在Java Web开发中,Session和Cookie是管理用户状态的核心技术。Session存储于服务器端,通过唯一的Session ID识别用户,确保数据安全与隐私;Cookie则存储于客户端,用于记录用户偏好等信息。两者各有优势:Session适合存储敏感数据,但需合理管理避免资源浪费;Cookie便于持久化存储,但在安全性上需谨慎设置。开发者可通过Servlet API轻松操作二者,实现个性化用户体验与应用性能优化。
59 2
|
3月前
|
JSON 前端开发 Java
java系列之 页面打印出 [object Object],[object Object]
文章解释了在前端页面打印JSON对象时出现`[object Object]`的原因,并提供了使用`JSON.stringify(json对象)`方法将对象转换为可读字符串的解决方案。
java系列之 页面打印出 [object Object],[object Object]
|
3月前
|
设计模式 Java
常用设计模式介绍~~~ Java实现 【概念+案例+代码】
文章提供了一份常用设计模式的全面介绍,包括创建型模式、结构型模式和行为型模式。每种设计模式都有详细的概念讲解、案例说明、代码实例以及运行截图。作者通过这些模式的介绍,旨在帮助读者更好地理解源码、编写更优雅的代码,并进行系统重构。同时,文章还提供了GitHub上的源码地址,方便读者直接访问和学习。
常用设计模式介绍~~~ Java实现 【概念+案例+代码】