Java | 对象(Object)

前言


【目录】

概述


对象(Object),是理解面向对象(Object-oriented)技术的关键,即世间万物皆对象(Everything is an Object)。环顾四周,就会发现许多世间对象(物体)的例子,比如衣帽鞋袜、瓜果梨桃、桌椅板凳、花鸟鱼虫等等。

物体都有两个共同的特征,就是状态(State)和行为(Behavior)。例如,在铲屎官家中的喵星人和汪星人,都有自己的状态(名字和花色)和行为(卖萌和犯二)。识别物体的状态和行为,是从面向对象编程的角度开始思考的好方法。

当看到身边的某个物体时,可以问自己两个问题:

  1. 这个物体可能处于什么状态?
  2. 这个物体可能执行什么行为?

当把观察结果记录下来以后,就会发现这些物体在状态和行为上的差异和区别。例如,普通台灯可能只有两种状态(开着和关着)和两种行为(打开和关闭),而电视机可能存在多种状态(开着、关着、当前音量、当前频道等等)和多种行为(打开、关闭、调节音量、转换频道等等)。或许还可能会注意到,某些物体可以被其他物体所包含,比如柜子里放着衣帽鞋袜、篮子里装着瓜果梨桃、房子里摆着桌椅板凳、院子里养着花鸟鱼虫等等。这些现实世界的观察结果都可以转化为面向对象编程的世界。

软件意义上的对象,在概念上与世间对象(物体)相似,也是由状态和相关行为构成的。在 Java 中,对象将其状态存储在字段(Field)(某些编程语言的变量)中,并通过方法(Method)(某些编程语言的过程或函数)公开其行为。方法用来操作对象的内部状态,并作为对象到对象通信的主要机制。

隐藏对象的内部状态并要求通过对象的方法执行所有的交互,这被称为数据封装(Data Encapsulation),这是面向对象编程的基本原则

将与单个对象有关的代码绑定到该对象中的做法,有很多好处:

  1. 模块化:对象的源代码可以独立于其他对象的源代码而进行编写和维护;创建后,对象可以很容易地在系统内进行传递。
  2. 信息隐藏:只能通过对象的方法进行交互,而其内部的实施细节可以与世隔绝。
  3. 代码重用:若对象已经存在(可能是由另一个软件开发人员编写的),则可以在自己的程序中使用该对象(如果对该对象中的代码信任的话)。
  4. 可插拔性和易调试性:如果某个特定对象出现问题,只需简单地将其从应用程序中移除,然后插入另一个对象作为其替换。这类似于解决现实世界中的机械问题,如果机器中的一颗螺栓坏了,那就更换它,而不是更换整台机器。

典型的 Java 程序会创建许多对象,这些对象通过调用方法进行交互。通过这些对象的交互,程序可以执行各种任务,例如实现 GUI、运行动画或通过网络发送和接收信息。一旦对象完成了为其创建的工作,它的资源就会被回收,以供其他对象使用。

【目录】

创建对象


众所周知,类提供了对象的蓝图,也就是通过类来创建对象。

import java.sql.Date;
import java.util.Calendar;

/**
 * 创建对象示例
 *
 * @author Blume
 */
public class CreateObject_demo {
   
    public static void main(String[] args) {
   

        // 通过 MyAge 类来创建一个新对象,
        // 并将创建时所需的名字和生日,作为初始值传递给它。
        MyAge demo = new MyAge("Java", "1995-5-23");
        System.out.println(demo.toString(2020));
        System.out.println("-------- -------- --------");

        // new 操作符在表达式中直接使用。
        String age = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值