《Head First Java》02_类与对象

面向对象具有较强的适应性可拓展性

面向对象的继承Inheritance

  • 找出相同类的共同部分
  • 将共同部分提取成新的类
  • 将旧类以继承关系连接到新类
  • 子类可以覆盖父类的方法,来实现字类特有的方法
  • 父类比较抽象,字类比较具体

以对象来思考

  • 当设计一个类时,要记得对象是靠类的模型塑造出来的
  • 对象是已知的事物(实例变量instance variable)表示对象的状态,每个独立的对象都会拥有一份该类型的值
  • 对象会执行的动作(方法methods)表示对象的行为

创建对象

  • 编写类
  • 编写测试用的类
  • 在测试用的类中创建对象,并存取对象的变量、调用对象的方法

Java会拾荒(主动管理内存)

创建出来的Java对象会被存储在叫做堆(Heap)的内存中,这个堆最大的特点是支持回收垃圾(Garbage-Collectible Heap),若Java虚拟机察觉到某个对象将不会再被使用时,便会将其标记为“可回收”,当内存开始不足,垃圾收集器便会启动来清理垃圾回收空间,让空间能够再次被利用。

问与答

如何创建全局的变量或方法?

使用publicstaticfinal修饰

全局的函数与数据,是否与面向对象的概念相违背?

什么是Java程序,以及如何提交?

Java类由一组类组成,其中有一个类带有启动用的main()方法,用户需要安装Java虚拟机才能让程序运行。

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

可将所有文件包装进依据pkzip格式来存档的Java Archive(.jar)文件,在该文件中可引入一个叫做manifest的文件、其内部定义jar的哪个文件带有启动程序的main()方法

要点

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

发表回复