Java static、final 关键字

static

在java中,static表示静态,可以修饰属性,方法,也可以是代码块。static的作用是用于创建独立于具体对象的域成员或者方法。
static可以需要解决什么问题
当我们用new关键字创建对象的时候,数据才会被分配存储空间,类中的成员及方法才能被对象调用。当我们使用new关键
字创建的对象共享同一个资源,而不是说每个对象都拥有自己的数据,或则说根本不需要创建对象,资源本省和对象并没有
任何关系。再有就是当我们希望方法不与包含它的类的任何对象有任何关系。总的来说,就是不创建对象,也可以使用属性
和调用方法。
静态变量
被static修饰的变量称为静态变量或类变量,它是属于类的,不属于任何对象。没有别static修饰的成员变量称为实例变量,
是属于某个具体的对象。
静态变量和实例变量的区别
实例变量:每次创建对象的时候,都会为对象的成员变量分配存储空间,在内存中,创建几个对象就有几份成员变量。
静态变量:静态变量是属于类的,在类加载的时候jvm为静态变量分配存储空间,所以在内存中只有一份。
静态方法
使用static关键字修饰的方法称为静态方法。静态方法也是不属于任何对象,是属于类的,所以静态方法内部是不能使用
this的。静态成员不能调用对象成员,因为在程序执行过程中,静态成员在类加载的之后限于对象成员加载,所以静态成
员调用对象成员会报错。在静态方法中可以创建类对象来调用对象成员。

当你希望某个方法被所有对象共享的时候,就应该定义成静态方法。
静态代码块
静态代码块中可以实现功能(不推荐),一般用于初始化类成员变量,静态代码块在程序执行过程中会被构造方法创建对象
时自动调用。

final

在java中final表示最终,可以修饰成员变量,方法,类。
修饰类
当使用final修饰类的时候,这个类就不能被继承。类中的成员变量可以根据实际需要设计成final。类中的方法会隐式的
指定为final方法。所以在设计的时候需要考虑这个类是否需要被继承,如果要被继承,就不能使用final。
修饰成员变量
final修饰的成员变量必须赋初值,而且只能初始化一次。
注意:
		fianl修饰的成员变量必须初始化
		两种给final修饰的成员变量赋值的方法:1.在声明的时候赋值 2.使用构造方法赋值
		如果fianl修饰的成员变量时基本数据类型,则值不能改变
		如果时引用类型,则这个引用的地址的值不能改变,但是这个引用所指向的对象的内容是可以改变的。
修饰方法
final修饰的方法不能被重写
父类中的final方法不能被子类重写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值