1.回顾及变量作用域
1.1实例化和使用
对象创建时的实例化步骤:
1.把类加载到静态区
2.new过程会再堆内存创建内存空间
3.调用构造方法,对该空间进行初始化操作,把成员属性复制到该空间中
4.构造方法执行完弹栈,最后把堆内存对象的地址,赋值给变量o
1.2 javaBean
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方法
1.3 常见异常
1.空指针异常
给引用数据类型赋值为null,当我们使用null值,去调用成员属性的时候,此时会弹出空指针异常
1.4 对象调用静态属性
1.5 传址和传值
输出应该是11 10 11 11,局部变量的两个i因为在不同方法中,所以i不是同一个i,而引用类型变量保存的是地址,一旦改变堆内存中的数据,地址没变,所以内容必会改变,无论谁访问
1.6 变量优先级
1.静态变量(static)和成员变量不可以同名
2.一个作用域中,不可以有同名的变量.
3.局部变量可以和静态变量及成员变量同名,同名情况时,若不加类名则调用的是局部变量,若加类名则调用的是静态变量
1.7 如何区分同名的构造方法和成员方法
构造方法没有返回值类型这一项,而成员方法有
2.This
2.1 是什么
this:是指每个对象中保存自己内存地址的一个引用类型变量
表示这个对象本身,就好像我们说"我"一样
2.2 能干什么
1.用在成员方法和构造方法中,可以区分同名的局部变量和成员变量
语法:this xxxx(成员变量) = xxxxx(局部变量,一般情况是传入的参数) ;
2.用在某个构造方法中,由于重载调用当前类中的其他构造方法,传参数给另一个构造方法
语法:this(参数) ;
必须写在构造方法中的第一行
3.return this; 可以做到链式调用
核心原理:前者的返回值,一定是可以调用后者的引用
一个成员方法中,哪个对象调用这个方法,那么this就指是哪个对象
2.3 怎么用
2.3.1 区分成员变量和局部变量
2.3.2 构造方法重载调用
2.3.3 链式调用
2.3.4 注意
this不能出现在静态上下文中(静态方法中)
3.Static用法
3.1 是什么
static 是修饰符,用来区分静态和成员
3.2 能做什么
可以修饰三个东西:静态变量,静态方法,静态语句块
静态变量:类体中用static修饰的变量
静态方法:使用static修饰的方法
静态语句块:使用static修饰的代码块,一个大括号就是一个语句块
3.3 怎么用