阅读本文约“2.1分钟”。segmentfault
当你在设计类时,要记得对象时靠类的模型塑造出来的,你能够这样看:测试
——对象是已知事物设计
——对象会执行的动做对象
对象自己已知的事物称为实例变量,它们表明对象的状态(数据),且该类型的每个对象都会独立的拥有一份该类型的值。继承
因此你也能够把对象看成为实例。内存
对象能够执行的动做称为方法。在设计类时,你也会设计出操做对象数据的方法。对象带有读取或操做实例变量的方法是很常见的情形,举例来讲,闹钟对象会有个变量来保存响铃时间,且会有getTime()与setTime()这两个方法来存取该时间。get
所以说对象带有实例变量和方法,但它们都是类设计中的一部分。虚拟机
类与对象二者之间有什么不一样呢?变量
类不是对象(倒是用来建立它们的模型),类是对象的蓝图,它会告诉虚拟机如何建立某种类型的对象。根据某类建立出的对象都会有本身的实例变量。扩展
也能够这么说,对象就好像通信簿中的一笔数据。
通信簿的每张卡片都有相同的空白字段(实例变量)。填入新的联系人就如同建立新的实例(对象),填入卡片的数据表明联络人的状态。
这个卡片类上的方法就是你会对卡片做的事情:getTel(),changeAddress(),deleteCard()等。
因此每张卡可以执行相同的动做,但取出的结果应该是依每张卡片各自独立的。
要做出哪些东西才会运用对象呢?你须要两个类,一个是要被操做于对象的类,另外一个是用来测试该类的类。测试用的类带有main()而且你会在其中创建与存取被测的对象。
待在main()中对于一个测试用的程序来讲是还好的,但对于货真价实的面向对象应用程序来讲,你会须要用对象来与对象交互。
main()的两种用途:
——测试真正的类
——启动你的Java应用程序
真正的Java程序只会让对象与对象交互,此处所说的交互是指相互调用方法。
Java的自动回收
建立对象时,它会被存放在成为堆的内存区域汇总,无论对象如何建立都会放在此区域中。此区域并不是普通的堆;它是可回收垃圾的堆(Garbage-CollectibleHeap)。Java会根据对象的大小来分配内存空间。好比说15个实例变量的对象所占用的空间就可能会比只有两个实例变量的对象要大。但对象使用完毕时内存要如何回收呢?Java会主动帮你管理内存!当某个对象呗Java虚拟机察觉再也不会被使用到,该对象就会被标记成可回收的。若是内存开始不足,垃圾收集器就会启动来清理垃圾、回收空间,让空间可以再次被利用。
面向对象设计扩展功能不须要改动以前已经测试好的程序代码。
全部的Java程序都定义在类中。
类如同蓝图描述该类型的对象要如何建立。
对象自治,你无需在乎它如何完成任务。
对象有已知的事物,并能执行工做。
对象自己已知道的事物成为实例变量,它表明对象的状态。
对象可执行的动做称为方法,它表明对象的行为。
建立类时,可能同时会须要建立独立、测试用的类。
类能够继承自较为抽象的父类。
Java的程序在执行期是一组会互相交谈的对象。
本文已转载我的技术公众号:UncleCatMySelf
欢迎留言讨论与点赞
上一篇推荐:【Java猫说】案例谈面向对象
下一篇推荐:【Java猫说】主数据类型和引用