public class Hello{
private static String name = "jetty";
private int age = "10";
public Hello(){
this.age = 11;
}
public static void main(String[] args){
new Hello();
}
}
首先通过javac 变成 Hello.class
加载到类加载器,类加载器通过,加载、验证、准备、解析、初始化
准备阶段把 private static name = "jetty"; 类变量的值设置为初始值,是JVM给设置的值,不是自己给定的值。
初始值是什么:
byte 初始化为0;
short 初始化为0;
int 初始化为0;
long 初始化为0L;
char 初始化为"\u0000" 就是'';
boolean 初始化为false;
float 初始化为 0.0f;
double 初始化为 0.0d;
引用类型为null;
引用类型:
就是对象的初始值。
初始化的时候,才会将自己设置的值赋给变量。
当new Hello(); 操作的时候,会先将实例信息加载到堆内存中,
同样先初始化为JVM默认值,之后再初始化为你设置的值,然后执行构造方法。
步骤:
1、加载age放入堆内存中开辟好的对象空间。
2、把age的值初始化为0.
3、初始化age的值为10,
4、执行构造方法。
1. 实例变量和类变量:
实例变量就是没有static修饰的变量,有static修饰变量为类变量。
面向对象:
1、封装
2、继承
3、多态
面向对象关注的是对象之间的交互。
面向过程关注的是数据的走向。
举例:面向对象:你去问老师题目老师跟你说答案。
面向过程:你先确定了题目,找到了错误,确定不懂的地方,拿起对应的卷子,出发,找到老师的办公室
去问老师,老师收到答案,老师思考,找到问题等等等等。
OOA 面向对象分析
OOD 面向对象设计
OOP 面向对象编程