final关键字(最终的,不可改变的)——
1.修饰类:不可继承,可创建对象;
2.修饰方法:可继承,单不能重写;
3.修饰变量:
基本数据类型:一次赋值,不可更改;
成员变量:固定的不是系统默认的值;而是手动赋予的值;在创建对象之前必须给final修饰的成员变量赋好值;
赋值方式有两种:一是直接等号赋值;二是构造方法赋值;
set方法不可用(滞后性)
引用数据类型:固定的是地址,不能再new,不能等于null;
static关键字(静态的)——
1.成员修饰符,不可修饰局部变量
2.静态成员调用方式:
1.静态成员通过类名.调用或者类的对象.调用
2.非静态成员通过对象.调用
3.静态是属于类的;非静态是属于对象的;(内存)
4.static使用注意:
1.静态不能使用非静态(静态先于对象存在)
2.静态中无this和super,因为他们都指本类或父类的对象;
5.什么时候使用static
1.成员变量:当多个事物的属性是共性(指对象)时,用static修饰;
2.成员方法:当方法中没有使用非静态成员时,就用static修饰
匿名对象:没有对象指针,直接new 类名();一般用于传参;
内部类
1.成员内部类:位于类成员的位置;
2.访问成员内部类的方法,外部类.内部类 变量名=new 外部类().new 内部类();
3.字节码文件: 外部类$内部类.class
1.局部内部类:位于方法内4
2.字节码文件:外部类$1内部类.class
3.局部内部类可以访问局部变量,JDK1.7之前局部变量必须用final修饰,JDK1.8则不用,默认有final修饰(生命周期);
1.匿名内部类:局部内部类的一种(前提:继承或实现)
2.作用:简化代码
3.简化的代码内容——1.创建接口或父类的实现类或子类;2.重写接口或父类的方法;3.创建实现类或子类的对象; (最后是一个对象)
权限:public>protected(同包内或异包子类的里面,不能出子类)>default(包内,包外子类继承也不可使用)>private
|
|