2021-02-18

静态变量和实例变量的概念

静态变量
static修饰的成员变量叫做静态变量【也叫做类变量】,静态变量是属于这个类,而不是属于是对象。
实例变量
没有被static修饰的成员变量叫做实例变量,实例变量是属于这个类的实例对象
static是不允许用来修饰局部变量

静态变量和实例变量区别
静态变量
静态变量由于不属于任何实例对象,属于类的,所以在内存中只会有一份,在类的加载过程中,JVM只为静态变量分配一次内存空间。
实例变量:
每次创建对象,都会为每个对象分配成员变量内存空间,实例变量是属于实例对象的,在内存中,创建几次对象,就有几份成员变量

访问静态变量和实例变量的两种方式
静态变量是属于这个类,而不是属于是对象,static独立于对象
静态变量:
类名.静态变量
静态方法:
类名.静态方法

static静态方法
由于对于静态方法来说是不属于任何实例对象的,this指的是当前对象,因为static静态方法不属于任何对象,构造方法不是静态方法!
1、静态只能访问静态。
2、非静态既可以访问非静态的,也可以访问静态的。

final关键字
修饰类
final修饰一个类时,表明这个类不能被继承。
package FinalDemo;
final class Father{
}
class Son extends Father{ //编译报错,不能继承final修饰的类
}
修饰方法
final修饰方法,方法不可以重写,但是可以被子类访问 【前提:方法不是 private 类型】。
修饰变量
final用得最多的时候就是修饰变量
如果被final修饰的是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

final变量修饰变量(成员变量、局部变量)
变量分为成员变量和局部变量
、1 final修饰成员变量:

1、成员变量必须在定义时或者构造器中进行初始化赋值
public class FinalAndVariable {
public int t; //编译成功
public final int b; //编译失败
public final int c = 1; //编译成功
}

2 final修饰局部变量:
1、只需要保证在使用之前被初始化赋值即可
当final变量修饰基本数据类型以及String类型时,编译期间能知道它的确切值时,编译器会把它当做编译期常量使用。也就是说在用到该final变量的地方,相当于直接访问的这个常量,不需要在运行时确定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值