资讯专栏INFORMATION COLUMN

【Java猫说】类与对象的那些事

BWrong / 3324人阅读

摘要:也可以这么说,对象就好像通讯簿中的一笔数据。对象有已知的事物,并能执行工作。对象本身已知道的事物成为实例变量,它代表对象的状态。对象可执行的动作称为方法,它代表对象的行为。

阅读本文约“2.1分钟”。

当你在设计类时,要记得对象时靠类的模型塑造出来的,你可以这样看:

——对象是已知事物

——对象会执行的动作

对象本身已知的事物称为实例变量,它们代表对象的状态(数据),且该类型的每一个对象都会独立的拥有一份该类型的值。

所以你也可以把对象当作为实例。

对象可以执行的动作称为方法。在设计类时,你也会设计出操作对象数据的方法。对象带有读取或操作实例变量的方法是很常见的情形,举例来说,闹钟对象会有个变量来保存响铃时间,且会有getTime()与setTime()这两个方法来存取该时间。

因此说对象带有实例变量和方法,但它们都是类设计中的一部分。

类与对象两者之间有什么不同呢?

类不是对象(却是用来创建它们的模型),类是对象的蓝图,它会告诉虚拟机如何创建某种类型的对象。根据某类创建出的对象都会有自己的实例变量。

也可以这么说,对象就好像通讯簿中的一笔数据。

通讯簿的每张卡片都有相同的空白字段(实例变量)。填入新的联系人就如同创建新的实例(对象),填入卡片的数据代表联络人的状态。

这个卡片类上的方法就是你会对卡片作的事情:getTel(),changeAddress(),deleteCard()等。

所以每张卡能够执行相同的动作,但取出的结果应该是依每张卡片各自独立的。

要作出哪些东西才会运用对象呢?你需要两个类,一个是要被操作于对象的类,另一个是用来测试该类的类。测试用的类带有main()并且你会在其中建立与存取被测的对象。

待在main()中对于一个测试用的程序来说是还好的,但对于货真价实的面向对象应用程序来说,你会需要用对象来与对象交互。

main()的两种用途:

——测试真正的类

——启动你的Java应用程序

真正的Java程序只会让对象与对象交互,此处所说的交互是指相互调用方法。

Java的自动回收

创建对象时,它会被存放在成为堆的内存区域汇总,不管对象如何创建都会放在此区域中。此区域并非普通的堆;它是可回收垃圾的堆(Garbage-CollectibleHeap)。Java会根据对象的大小来分配内存空间。比如说15个实例变量的对象所占用的空间就可能会比只有两个实例变量的对象要大。但对象使用完毕时内存要如何回收呢?Java会主动帮你管理内存!当某个对象呗Java虚拟机察觉不再会被使用到,该对象就会被标记成可回收的。如果内存开始不足,垃圾收集器就会启动来清理垃圾、回收空间,让空间能够再次被利用。

面向对象设计扩展功能不需要改动之前已经测试好的程序代码。

所有的Java程序都定义在类中。

类如同蓝图描述该类型的对象要如何创建。

对象自治,你无需在意它如何完成任务。

对象有已知的事物,并能执行工作。

对象本身已知道的事物成为实例变量,它代表对象的状态。

对象可执行的动作称为方法,它代表对象的行为。

创建类时,可能同时会需要创建独立、测试用的类。

类可以继承自较为抽象的父类。

Java的程序在执行期是一组会互相交谈的对象。

本文已转载个人技术公众号:UncleCatMySelf
欢迎留言讨论与点赞
上一篇推荐:【Java猫说】案例谈面向对象
下一篇推荐:【Java猫说】主数据类型和引用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71633.html

相关文章

  • Java猫说】案例谈面向对象

    摘要:以下我们使用一个案例来举例说明面向对象的编程方法,案例的要求是在图形接口画出四方形圆形与三角形。本文已转载个人技术公众号欢迎留言讨论与点赞上一篇推荐猫说编译器与虚拟机哪个重要下一篇推荐猫说类与对象的那些事 有人告诉我那里遍地都是对象——我们把所有的程序代码放在main()里面,事实上,那根本就不是面向对象的做法,在Java的面向对象中,我们也会看到类和对象的不同,以及对象是如何让你的生...

    CloudwiseAPM 评论0 收藏0
  • Java猫说】主数据类型和引用

    摘要:阅读本文约分钟变量有两种主数据类型和引用。主数据类型用来保存基本类型的值,包括整数,布尔和浮点数等,而对象引用保存的是对象的引用。而在中,主数据类型也有不用的大小与名称。 阅读本文约2.3分钟 变量有两种:primitive主数据类型和引用。 Java注重类型。它不会让你做出把长颈鹿类型变量装进兔子类型变量中这种诡异又危险的举动——如果有人对长颈鹿调用跳跃这个方法会发生什么悲剧?并且...

    dongfangyiyu 评论0 收藏0
  • Java猫说】构建战舰类控制台游戏

    摘要:阅读本文约分钟我们将用基础来模拟实现大家熟悉的战舰游戏,目标是要猜想对方战舰坐标,然后开炮攻击,命中所有战舰后,游戏结束。本文已转载个人技术公众号欢迎留言讨论与点赞上一篇推荐猫说实例变量与局部变量下一篇推荐猫说处理战舰游戏 阅读本文约 7分钟 我们将用基础Java来模拟实现大家熟悉的战舰游戏,目标是要猜想对方战舰坐标,然后开炮攻击,命中所有战舰后,游戏结束。接下来我们来分析一下具体的...

    ixlei 评论0 收藏0
  • 关于继承那些

    摘要:格式子类名父类名好处提高了代码的复用性提高了代码的维护性通过少量的修改,满足不断变化的具体要求让类与类产生了一个关系,是多态的前提要求有共同的属性或操作有细微的差别继承的弊端让类的耦合性增强。 showImg(https://segmentfault.com/img/remote/1460000019321816?w=600&h=242); 第二阶段 JAVA面向对象 第二章 继承 其...

    soasme 评论0 收藏0
  • 【面试】Java基础那些-Two

    摘要:前言面试中对于技术职位,一般分笔试与面谈,如果面试官的一些小问题你可以立马找到对应的知识点扩展开来,那么这就是你的优势,本系列将讲述一些面试中的事,不会很详细,但是应该比较全面吧。 前言 面试中对于技术职位,一般分笔试与面谈,如果面试官的一些小问题你可以立马找到对应的知识点扩展开来,那么这就是你的优势,本系列将讲述一些java面试中的事,不会很详细,但是应该比较全面吧。 主要内容 pa...

    you_De 评论0 收藏0

发表评论

0条评论

BWrong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<