类:对象共有特征的描述
对象:真实存在的具体东西

类名 对象名 = new 类名();
Phone p = new Phone();
Javabean类(定义类):用来描述一类事物的类,不写main方法
测试类:编写main方法的类,创建javabean类的对象并进行赋值调用
首字母建议大写,驼峰形式

get set 以及方法重载都可以使用 快捷键 alt + insert

this 关键字可以区分局部变量与全局变量
age 局部变量,取值采用就近原则
This.age 全局变量
也叫构造器,构造函数
作用:在创建对象的时候给成员变量进行赋值

构造方法的定义:
若没有定义构造方法,系统将会给出一个默认的无参构造方法
如果定义了,系统不在给出默认的构造方法
构造方法的重载:带参构造方法,无参构造方法,两者方法名相同,但参数不同,这叫构造方法的重载
无论是否使用,都手动书写无参构造方法(默认值),和带全部参数的构造方法。
构造方法,在创建对象的时候由虚拟机自动调用,给成员变量进行赋值

一个对象内存图
内存结构主要涉及了方法区,栈(程序执行的控制语句在),堆(new出的数据,负责存储数据)
1.加载class文件(方法区)
2.申请局部变量(Student s = new Student() 申请了一个局部变量s在栈中,s的内容为堆的内存地址)
3.在堆内存中开辟一个空间
4.初始化
5.构造方法初始化
6.将堆中的内存地址给局部变量
基本数据类型:整数类型,浮点数类型,布尔类型,字符类型
变量中存放的是真实值
引用数据类型:除上之外
变量中存放的是地址值
成员变量:类中的变量 在堆中 有默认初始化值
局部变量:方法中的变量 在栈中 需要初始值