Head First Java第二章:类与对象

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

  • 对象是已知的事务
  • 对象会执行的动作
    在这里插入图片描述

对象本身已知的事物被称为:

  • 实例变量

对象可以执行的动作称为:

  • 方法
    在这里插入图片描述

对象本身已知的事物称为实例变量(instance variable)。它们代表对象的状态(数据),且该类型的每一个对象都会独立的拥有一份该类型的值。
所以你也可以把对象当作为实例。
对象可以执行的动作称为方法。在设计类时,你也会设计出操作对象数据的方法。对象带有读取或操作实例变量的方法是很常见的情形。举例来说,闹钟对象会有个变量来保存响铃时间,且会有getTime()与setTime()这两个方法来存取该时间。
因此说对象带有实例变量和方法,但它们都是类设计中的一部分。

2.类和对象两者之间有什么不同?
类不是对象(却是用来创建它们的模型)
类是对象的蓝图。它会告诉虚拟机如何创建某种类型的对象。根据某类创建出的对象都会有自己的实例变量。举例来说,你可以使用按钮类来创建出许多大小、颜色、文字等不同的按钮。
在这里插入图片描述
也可以这么说…
对象就好像通讯簿中的一笔数据
通讯簿的每张卡片都有相同的空白字段(实例变量)。填入新的联络人就如同创建新的实例(对象),填入卡片的数据代表联络人的状态。
这个卡片类上的方法就是你会对卡片作的事情: getTel().changeAddressO、deleteCard()等。
所以每张卡能够执行相同的动作,但取出的结果应该是依每张卡片各自独立的。

3.创建你的第一个对象
要作出哪些东西才会运用对象呢?你需要两个类。一个是要被操作于对象的类(例如说Dog、AlarmClock和Television等) ,另-一个是用来测试该类的类。测试用的类带有main(并且你会在其中建立与存取被测的对象。)

4.逃出main()
只要还呆在main()中,你就是在对象村外。呆在main()中对于一个测试用的程序来说是还好的,但对于货真价实的面向对象应用程序来说,你会需要用对象来与对象交互。

main()的两种用途:

  • 测试真正的类
  • 启动你的java程序

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

5.问答环节
(1)问:若需要全局(global)变量或方法时该如何?

答:在Java的面向对象概念中并没有全局变量这回事。然而实际上会有需要方法或常量(constant)可被任何的程序存取。比如说专家术语学习机中到处都在调用的random()方法或圆周率这种常数。后面会讨论到public与static这些让方法变成类似“global”的修饰符。在任何类中的任何程序都可以存取public static的方法。 任何变量只要加.上public、static和final, 基本上都会变成全局变量取用的常数。

(2)问:如果能做出全局的函数与数据,那又怎么算得上是面向对象呢?

答:首先要注意到任何Java中的事物都必须呆在类中。因此,pi常数或random()方法也必须定义在Math这个类中。而你必须记住这类近似全局的事物在Java中算是例外。它们是非常特殊的情况,不会有多个实例或对象。

(3)问:什么是Java程序?如何进行提交?

答:Java程序是由一组类所组成,其中有一个类会带有启动用的main0方法。因此程序员必须要编写一或多个类并以此提交。若用户没有Java虛拟机则必须一并提交才能让应用程序运行起来。有数种安装程序能够让你集成包装类与不同平台使用的Java虚拟机到安装光盘上。如此就能让用户同时安装正确版本的Java虛拟机(如果之前没有安装的话)。

(4)问:若有成百上千的类时要如何提交?是否可以包装成类似单一应用程序的形式?

答:数量庞大的个别文件确实会让用户头疼。你可以把所有文件包装进依据pkzip格式来存档的Java Archive- .jar文件。在jar文件中可以引入一个简单文字格式的文字文件,它被称为manifest,里面有定义出jar中的哪一个文件带有启动应用程序的main(方法。

注:

  • 面向对象设计扩展功能不需改动之前已经测试好的程序代码。
  • 所有的Java程序都定义在类中。
  • 类如同蓝图描述该类型的对象要如何创建。
  • 对象自治;你无需在意它如何完成任务。
  • 对象有已知的事物,并能执行工作。对象本身已知道的事物称为实例变量,它代表对象的状态。
  • 对象可执行的动作称为方法,它代表对象的行为。
  • 创建类时,可能同时会需要创建独立、测试用的类。
  • 类可以继承自较为抽象的父类。
  • Java的程序在执行期是一组会互相交谈的对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值