Java——面向对象(7).static和final

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37597439/article/details/81114585

static:静态的
1)静态变量:
1.1)由static修饰
1.2)属于类,存在方法区中,只有一份
1.3)常常通过类名.来访问(也可以通过引用访问)
1.4)所有对象都一样时使用
2)静态方法:
2.1)由static修饰
2.2)属于类,存在方法区中,只有一份
2.3)常常通过类名.来访问(也可以通过引用访问)
2.4)没有隐式的this传递
静态方法不能直接访问实例成员
2.5)方法的操作与参数相关与对象无关时使用

3)静态块:
3.1)由static修饰
3.2)属于类,类被加载的时候自动执行,
类只加载一次,所以静态块也只执行一次
3.3)常常用于加载静态资源(图片,音频)

final:不能变
1)修饰变量:变量不能被改变
修饰成员变量两种方式初始化;
1。声明的同时初始化
2.构造方法中初始化
修饰局部变量:
只要在用之前给值就可以了

2)修饰方法:
方法不能被重写
防止子类在定义新方法时被不经意的重写
因为在Java中方法被默认是可以重写的
3)修饰类:类不能被继承,但是可以继承别的类(不能当爸爸,只能当儿子)

1static final修饰的成员变量被称为常量,必须声明同时初始化,不可以被改变
static final 常量会在编译期被替换,例如:

class Foo{
public static final int NUM = 100;
}

class Goo{
pubic static void main(string[] args){
System.out.println(Foo.NUM)
}
}
static fanal常量Foo.NUM会在编译时被替换为其常量值(100),在运行Goo类时,Foo类不需要被择如

猜你喜欢

转载自blog.csdn.net/qq_37597439/article/details/81114585