打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java三种修饰符的总结(静态,抽象,final)

今天主要介绍下三种修饰符:static、abstract、final的区别。

先来一张图:

修饰符总结

接下来对每种修饰符分别进行总结:

  1. static:

    静态属性:如果属性使用static修饰的话就是静态属性,静态属性不绑定到某个对象,而是属于整个类,可以直接用类名调用。

    静态方法:静态方法和静态属性类似,不绑定到对象,可以直接用类型调用。

    静态块:在类加载的时候被调用,而且只调用一次。

  2. abstract

    抽象类:抽象类是不能被实例化的类,往往用作父类。

    抽象方法:没有方法体的方法是抽象方法,往往在子类中实现,有抽象方法的类一定是抽象类。

  3. final

    final类:final类不能被继承。

    final属性:final属性为常量,赋值后不能修改,赋值的方式有两种,一种是声明的时候赋值,一种是在构造方法中赋值。

    final方法:final方法不能被子类覆盖。

大体上就是这么几个区别。但是呢?说到这边我就有两个疑问了。

第一个疑问:抽象类必须都是抽象方法?这句话是对的还是错的?

第二个疑问:既然有静态块,我们知道在静态块里面可以初始化,那么,用了静态块初始化再用静态变量赋值会怎么样?

接下去就试试~~

第一个疑问:

抽象类

显而易见,在抽象类里可以写抽象方法也可以写不是抽象方法的方法~~!所以总结为:有抽象方法的一定是抽象类,抽象类里不一定都是抽象方法~

第二个疑问:

先定义静态属性的i值

先定义静态属性的i值

结果已经出来了,这里需要解释一波嘿嘿。静态变量在类初始化时首先被加载的,JVM会去查找类中所有的静态声明,然后分配空间,这个时候只是完成了地址空间的分配,还没有赋值。之后JVM会根据类中静态赋值(包括静态类赋值和静态块赋值)的先后顺序来执行。对于上面的第二个程序而言,就是先声明了int类型的地址空间,并把地址传递给了i,然后按照类中的先后顺序进行赋值动作,首先执行静态块的i=2,后执行静态属性的i=3,那么最后的结果就是i=3了,第一个程序也是同理。但是如果有多个静态块对i继续赋值呢?i的值也是取决于最后的值!

所以这里要提倡的是变量一定要先声明后赋值!

最后,今天是元宵佳节,祝愿各位小伙伴节日快乐,在新的一年里实现自己的愿望~~喜欢的关注一波哈~

最后应要求附上java的单词(一天十个):

JDK(Java Development Kit) java开发工具包

JVM(Java Virtual Machine) java虚拟机

classpath 类路径

version 版本

author 作者

public 公共的

class 类

static 静态

void 没有返回值

String 字符串类型

谢谢收看~~!!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java语言中的修饰符—static
java基础
Java基础知识总结(超详细整理)
java中的修饰符static与静态方法final的用法
一个月的JAVA总结
Java基础语法(9)-面向对象之类的成员
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服