变量 : 存储数据,方便操作
变量声明 : 数据类型 变量名 = 值;
数据类型 : 基本和引用 , 引用 : 类,数组,接口
所有引用类型,都可以赋值为null
整数 : 默认0 , 小数 : 默认0.0 , 布尔 : 默认false , 字符 : 默认 \u0000 , 引用 : 默认 null
创建了一个OOP_01类型的变量 , 并且创建了一个OOP_01的对象,把该对象的内存地址,赋值给o这个变量
实例化步骤 :
1 把类加载对静态区
2 new 会在堆内存创建内存空间
3 调用构造方法,对该空间进行初始化操作,把成员属性复制到该空间中
4 构造方法执行完弹栈,最后把堆内存对象的地址,赋值给变量o
每new一次 都会创建一个全新的对象
静态区 : 保存静态资源文件,包括class文件,变量,方法等 还有常量池
栈内存 : 执行方法
堆内存 : 保存对象,每个对象空间分为三块 : 1 数据部分 , 2 头部 , 3 类型,是哪个类实例化而来的
JavaBean : JavaBean是公共Java类,但是为了编辑工具识别,需要满足至少三个条件:有一个public默认构造器(例如无参构造器,)属性使用public 的get,set方法访问,也就是说设置成private,同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写。需要序列化。这个是框架,工具跨平台反映状态必须的最近看<Think in Java>,里面讲到JavaBean最初是为Java GUI的可视化编程实现的.你拖动IDE构建工具创建一个GUI 组件(如多选框),其实是工具给你创建java类,并提供将类的属性暴露出来给你修改调整,将事件监听器暴露出来.
EJB : 在企业开发中,需要可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。 然后有提高了协议要求,就出现了Enterprise Bean。EJB在javabean基础上又提了一些要求,当然更复杂了。
POJO : 有个叫Josh MacKenzie人觉得,EJB太复杂了,完全没必要每次都用,所以发明了个POJO,POJO是普通的javabean,什么是普通,就是和EJB对应的。 总之,区别就是,你先判断是否满足javabean的条件,然后如果再实现一些要求,满足EJB条件就是EJB,否则就是POJO。
1、所有属性为private
2、提供默认构造方法
3、提供getter和setter
当我们使用null值,去调用 成员 属性的时候,会报出空指针异常
不会出现错误,因为 i 是静态属性,压根和堆内存没有关系
当我们使用 引用类型变量调用 静态属性的时候,在编译时就会把该变量转换为对应的类名去调用
局部变量可以和静态变量及成员变量同名
一个作用域中 不可以有同名的变量
想要使用静态变量,需要使用类名区分
成员方法和构造方法可以同名,需要使用返回值区分
因为构造方法,没有返回值,连void都没有
而成员方法,有返回值,不需要返回数据也必须写void的
this : 是每个对象中保存自身内存地址的一个引用类型的成员变量
this 就表示这个对象自己,相当于我们说 "我" 一样
this能干什么?
1 用在成员方法和构造方法中,可以区分同名的局部变量和成员变量 语法 : this.xxx = xxx;
2 用在某个构造方法中
用于重载调用当前类中的其他构造方法,提高代码重用 语法 : this(参数) ; 必须写在构造方法第一行
3 return this; 可以做到链式调用
核心原理 : 前者的返回值,一定是可以调用后者的引用
在一个成员方法中,哪个对象调用的这个方法,this就是哪个对象
在构造方法中 使用this(参数) 可以重载调用当前类的其他构造方法 提高代码重用
但是必须写在构造方法第一行
链式调用
前者的返回值,一定是可以调用后者的引用
重载调用 上面的有参构造,做到代码复用 但是 该语句 必须在构造方法第一行
static : 是个修饰符,用来区分静态和成员
可以修饰三个东西 : 静态变量 , 静态方法 , 静态语句块
静态变量 : 类体中使用static修饰的变量
静态方法 : 使用static修饰的方法
静态语句块 : 使用static修饰的代码块(语句块)
一个大括号 就是一个语句块
语法 :
static {
java代码
}
在类加载阶段执行,加载完成就立刻执行,在main之前执行,并且只执行一次
由于最先执行并且只执行一次,所以适合做一些准备初始化操作
实例语句块 : 可以看做没有名字的成员方法
每次创建对象,都会执行一次,多个从上往下执行
语法 : { 代码; }
静态变量 也是在类加载阶段初始化的,和静态语句块优先级一致,从上往下初始化