面向对象含义
一件事情只考虑实施步骤而不去考虑如何实现。
统帅分配任务给将军,要求限时达成任务;将军带领士兵冲锋陷阵,去完成。
对象
对象的含义
一个具体的实际存在的,就是对象。
比如:一辆车、一个桌子、一只猫、一个计划方案。
对象初始化的过程
1.堆中申请内存用来存放对象(属性为默认值)
2.声明初始化(变量后边直接赋值)
3.使用者给定的值(构造器)
4.栈生成引用指向堆中的对象
对象的内存分析
单个对象的内存结构
在栈帧中创建变量,在堆中创建对象,将堆中对象的内存首地址放在栈帧中构成引用。
多个对象的内存结构
多个对象在内存中,都有不同的内存划分,成员变量存储在各自的内存区域中,成员方法多个对象共有的(各创建各的内存空间互不影响)。
多个对象指向相同的内存
当多个对象指向相同的内存,只要改变一次值,之后无论使用哪一个对象获取数据,都是修改后的数据(只是变量名不同,引用的是同一块内存空间的内容,首地址也一样)。
构造方法
格式
无参构造:pubic 类名(){}
有参构造:public 类名(double num,String str){this.num=num;this.str=str;}
与对象的关系
Java通过new关键字来调用构造方法,从而返回类的一个实例对象,是一种特殊的方法。
调用其他构造方法
在构造方法中调用其他的构造方法使用this(变量名);
但是只能调用一次,且必须放在首位
注意事项
- 如果没有定义构造方法,系统将自动给定一个默认的构造方法。
- 如果定义一个带参构造方法,却没有定义无参构造方法,系统将不会给出无参构造方法,这时要使用无参构造方法就必须手动写出无参构造。
- 无论是否使用无参构造,都推荐将无参构造写出来
用途
带参的构造方法可以为成员变量进行初始化