第五章:初始化与清理
1.构造器:
用构造器清理,确保了java类的初始化,可以想象每一个java类内都应该有一个initialize,
确保在使用对象前,编译器可以调用这个方法对java对象进行初始化,为了让编译器统一识别,
并调用此方法,故规定此方法与类名相同,叫构造器
2.方法重载:
为了实现一个类的不同创建,我们需要用多个不同的构造器,那么编译器怎么识别与调用不同
的构造方法呢? 这里引入了方法重载,编译器通过不同的入参类型、入参循序、入参个数进行
区别调用(不能通过返回值进行区分,有时候调用方法只关注方法带来的副作用,并非返回值)。
2.1基本数据类型方法的重载:
如果多个重载方法参数类型都不与转入参数相同,则分为两种情况:1.转入参数如果为小类型
则会向上转型,如:char转型为int;2,。转入参数类型如果为大类型,则需手动声明强行转化
否则编译器会报错,如 int(1.2)强转double为int
2.2以返回类型来区分方法重载是不可取的,不行的
3.this关键字:
可以假想编译器将对象引用转入方法中,A a = new A(),假设A内部有一个test方法;此时不妨
想a.test()为a.test(a),将a引用作为参数转入,参数a就相当于this(this关键字只能在类的
方法中使用,代表类的引用,及其本身)
this的使用场景:1.想从方法中返回自身对象引用;2.想在构造器中调用构造器,可以在一个
构造器中用this(参数)去调用另一个构造器(只能调用一个且必须放在最前面一行);3.传
入参数变量与类成员变量相同时,可以用this加以区分,避免歧义
4.static关键字
实现原理:数据放入静态存储区
1.static方法就是缺少this的方法,相当于全局方法,被所以的类对象所拥有
2.外部类不可以声明为static,类的成员变量可以声明为static
3.static方法中不能调用非static方法,除非传递一个对象的引用,引用.方法进行调用
使用场景:1.修饰成员变量与成员方法(表示类的属性或者被类中所有对象共享方便资源调用);
2.声明静态块;3.修饰内部类;4.导入静态包(可以直接使用方法)
5.成员初始化
java编译器可以为类的全局变量赋值(Boolean值初始化为FALSE,char初始值为‘空白’,即0,基本
类型都会赋值为0,引用类型则都为为null值),对于局部变量为了暴露出编译错误,并不会赋初始
值
5.1指定初始化:可以在类成员变量定义处进行初始化,这里初始化方法有基本类型直接给出值;利用
构造方法或是某个类的静态方法等进行初始化,且方法可以带参,但参数在调用方法前必须已经初始化
否则编译报警告
类的初始化顺序:先是定义的变量进行初始化,然后构造方法,最后调用的方法,静态数据只有在被使
用时才会被初始化,且其初始化时间最早。
如果没有类没有实现tostring方法,那么打印的就是类名+对象的地址
6.可变参数列表:可以改变参数的类型,以及个数,顺序进行重载,可变参数列表会有到数组的自动转化
7.enum枚举:个人理解为一系列对象的所有者,可用switch语法;枚举实现静态方法values()获取对象数
组,并且每个枚举对象实现了ordinal方法,获取当前对象的序号
CSP:目前见到的页面嵌套大都是iframe标签嵌套,虽然有些js封装的特别好,甚至页面上看不到与iframe的任何相关的标签的标签。
故:要获取到嵌套页面,需打开F12查看iframe属性
IE专用:document.frames['iframe的name'].document.getElementById('元素的ID');
通用方法:document.getElementById('iframe的ID').contentWindow.document.getElementById('元素的ID')
Jquery:标签属性(name,id)的模糊获取,利用正则表达式;以及标签绑定事件,如click,live(用于让页面新增标签的事件),focus等事件,一定要弄清楚页面的事件是哪个,再进行绑定。
适用于:获取页面事件变化后获取页面同一个位置改变的不同信息。
例:
$("li[id^='td_middle_orderHandleTab_']").live('click',function () {
alert($(this).attr("id"));
var str = $(this).attr("id");
alert(str);
});