一、面向对象——找人帮自己办事(自己省事),面向过程——事情都亲力亲为;
概念:
二、类
使用对象:导包、创建、使用(点属性/点方法)
引用类型的初始值都是null;
三、内存分析
首先是方法区,方法区存储的是.class数据信息(成员变量、成员方法、main方法..);
方法压栈执行,方法里的对象名相当于变量名,方法中的变量是局部变量;
new出来的对象都堆内存中,除了基本数据类型(对象名保存的是地址值和对象内容信息都在占内存中,可以直接 =),引用数据类型的对象名 = 运算时候用的是栈内存中的对象名存储的是地址值,指向堆内存中这个对象的地址值;
1、调用对象内存图:
栈内存中变量名称保存的是堆内存中该对象的地址值;
方法调用执行结束,立刻从栈内存中消失,立即弹出,出栈,下面的方法重见天日,永远是只执行栈内存的压在最上面的方法;堆内存中创建的对象保存的成员方法的信息是方法区该方法的地址值;
2、phone1和phone2两个对象内存图:
3、两个对象引用指向同一对象:
4、对象作为方法参数传递:
5、对象类型作为方法的返回值
三、成员变量和局部变量
1、区别
垃圾回收是jvm工作,不是程序控制;
局部变量不赋初始值不能用:
四、封装
1、方法封装
2、关键字private
成员变量默认是public,被调用时候可以直接 点.成员变量 = 赋值,
设置为private的成员变量,要添加getXxx和setXxx方法,供外界赋值和获取值,可以在get/set方法体中控制外界调用时候设置值合理不合理处理;
3、private修饰的成员变量,的getXxx方法特例:
boolean类型的成员变量get方法是 isXxx();
4、this关键字
五、构造方法——创建对象的方法
六、定义一个标准的对象类