菜鸟的学习之路(4) —java static和final使用

一.static的使用:

1.static关键字表示“全局”或者“静态”,可以修饰属性、方法和类。

2.static修饰的变量和方法,我们就统一称为静态变量静态方法。它们不依赖特定实例存在,被类的所有实例所共享。

3.只要这个类被加载,那么java虚拟机就能在数据区的方法区通过类名来调用它们。

4.static修饰的成员变量,是所有该类的对象共同使用这一个静态的成员变量。也就是说当其中任意一个对象修改了其静态成员变量,连同着其他对象中的成员变量都会发生变化。所以静态成员变量一般的调用方式:类名.成员变量名。

5.static修饰的类,是不可以进行重写(Override)的,只能进行继承。(在子类中重写了只是隐藏了父类的方法,而不是进行了重写)

直接上图:

@Override 的意思是说:是重写父类中的这个方法,报错的话就是说明无法重写这个方法。

注意:只要有静态方法就无法覆盖。

7.在静态方法中不能访问非静态的成员,在静态方法中可以访问静态成员,在非静态方法中可以访问静态和非静态成员。

注意:在静态方法中不能使用this关键字。

8.static代码块(静态代码块):

静态代码块的格式:放在类中。

static

{

//执行代码

}

静态代码块的作用完成一些变量的初始化工作。当new对象时,类被加载先执行静态代码块,在执行构造方法。

每个类的静态代码快只会执行一次,当再用该类构造对象时,则不会在调用。

当继承体系中既有构造方法又有静态代码块时,则会从最顶层开始先执行静态代码块,执行到最底层,然后再从最顶层执行构造方法。

图解:

当在使用B类new对象时:

二.final的使用:

1.final的适用范围:可以修饰属性、方法、类。

2.final修饰的类不可以被继承,也就是不能再有子类,称为终态类

3.final修饰的方法不可以被重写。

4.final修饰的属性定义了就不能再去修改,也就是一个常量。

例:

final int a = 10;//定义就不能在修改。

a = 20; //错误

注意:使用final修饰属性时,如果没有赋初值,那么可以再构造方法中赋值,但是在每个构造方法中都要有赋值。

5.当用final修饰引用类型时,就表明这个引用只能指向这一个对象了,不能再去指向其他的对象,但这个对象的内容可以去改变。

      

6.在类中对于final类型成员变量,一般来说有两种赋值方式:

a).在声明final类型成员变量时就对其赋初值。

b).在声明final类型成员变量时不对其进行赋初值,但在该类中的所有构造方法中进行赋初值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值