考虑问题去1.考虑这个问题中包含哪几个对象,2.每个对象应该具备的方法和属性,3.类和类之间的关系
一、类和对象
类是抽象的一类事物,对象是类中的一个实例化
1、类和对象的关系
(1)关联
最弱的一种关系,往往在程序中,类A和类B具有关联关系,则A是B的成员函数的一个参数
(2)继承
XX是一种XX,Java只支持单继承,一个字类只能有一个基类,一个基类可以派生出很多子类
(3)聚合
- 聚集
A是B的一部分,也可以是C的一部分(队长和球队的关系)
- 组合
A和B密不可分(脑袋和人的关系)
(4)实现关系
父类具有某种功能,由子类去实现
2.成员变量
- 成员变量可以是Java语言中的任何一个数据结构(包括基本类型和引用类型)
- 在定义成员变量时可以对他进行初始化,若不进行初始化,Java使用默认的值对他进行初始化(boolean默认false 引用默认NULL)
- 成员变量的作用域是整个类
3.如何在内存中区分类和对象
- 类是静态的概念,在代码区
- 对象是new出来的,new出来的东西都在heap上,Java有垃圾回收机制。类的每个成员变量在不同的对象上都有不同的值(除了静态变量),而方法只有一份,执行的时候才占用内存。所以堆上只有成员变量,没有成员方法。
引用
- 除了四类八种的基本类型外,别的类型都可以看作是引用类型
- java中的对象是通过引用对其操作的,引用对象变量在stack上,指向的大内存在heap上(new出来的)
- 引用类型占据两块内存,一块小内存指向一块大内存
二、构造方法
- 没有返回值,不能写void,必须和类名相同
- 和new一块使用,new的时候调用构造方法
- 如果自己不定义构造方法,系统会自动添加;一旦自己指定,系统就不再添加了
三、方法是采用值传递的方法传递实参、方法的返回值存在一个临时区域中