7.Static
静态
可以使用Static关键字解决数据共享问题,
被static修饰的内容它就不属于某个对象,而是属于类所有
(1)修饰
一旦使用了static 关键字修饰成员变量,那么这个变量变为类所有
static可以修饰
1、成员变量 被称为静态变量
2、成员方法
使用static修饰的方法,该方法为类所有,该方法成为静态方法
(2)调用:
成员变量:类名.变量名
成员方法:类名.方法名()
同类中调用方法,不需要类名
(3)注意事项:
1、静态只能访问静态的
2、静态方法当中不能使用this关键字
原因:this代表对象,静态的是类所有
(4)静态代码块:
static其他用法:
格式
static{
//代码
}
注意:
静态块在本类加载的第一次就自动执行一次
静态块执行的顺序优先于非静态的,比构造方法还要早
实际使用:
用来一次性对静态的成员变量赋值
可以进行一些文件加载任务(图片、音视频等多媒体内容)
8.final
代表最终,不可改变的
(1)四种常用方法
<1>修饰一个类
格式:
修饰符 final class 类名{
}
使用final修饰的类不能有子类,该类所有方法不能被重写
<2>修饰一个方法
格式
修饰词 final 返回值 方法名(参数列表){
}
注意:
final修饰的额方法不能被重写
abstract修饰的方法必须要重写
两者互相矛盾,不能同时出现
<3>修饰局部变量
一经赋值不能改变
public void hehe(){
final int num;
num=10;
//num=20;final修饰局部变量,一经赋值不能改变
System.out.println(num);
}
<4>修饰成员变量
必须要赋值
两种方式赋值:(二选一)
1、直接赋值
final int age=1;
2、通过构造方法赋值
final int age;
public Person() {
this.age=1;
}public Person(int age) {
this.age=age;
}
使用final修饰:引用类型数据使用final修饰后内存地址不能改变
final A a=new A();
//a=new A();
a.setNum(8);
a.setNum(9);//对象的属性值可以改变
(2)常量:
声明的时候必须立马赋值
格式:
public final static 数据类型 变量名 = 值;
例:public final static int ID_A = 1;
常量的名称必须全部大写,多个单词用下划线链接
常量调用:
类名.常量名称;
也必须要有东西接收
例:
System.out.println(Person.ID_A);
int a=Person.ID_A;