动力节点口口相传的Java黄埔军校
java中final修饰变量、修饰符、方法、类的详细用法
2019-09-12 来源:动力节点

 

今天动力节点java培训机构小编为大家介绍“java中final修饰变量、修饰符、方法、类的详细用法”,希望通过此文能够帮助到大家,下面就随小编一起看看java中final修饰变量、修饰符、方法、类的详细用法吧。


timg (2).jpg


final可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。


  1、final 修饰变量


  final修饰的变量表示此变量是“最后的、最终的”含义。一旦定义了final变量并在首次为其显示初始化后,final修饰的变量值不可被改变。


  所以,final修饰变量时就成了 常量(一旦赋值不能改变)


  常量名一般要全部大写;


  final int BOY = 1;


  这里需要注意以下几个问题:


  final修饰的变量,无论是类属性、对象属性、形参还是局部变量,这些变量都是需要进行显示初始化(即为其显示指定初始值)。对于final属性来讲,系统不会提供默认值,


  对于final修饰的形参,由于是实参传递过来的,很好理解。


  对于final修饰的局部变量,与未用final修饰的变量一样,都是需要显示初始化。即局部变量都是需要显示初始化的。


  对于一般的类属性和对象属性,由类和对象的初始化过程中可以看出,首先都进行了默认初始化。然后对有显示赋值的变量才再进行显示初始化。


  但对final修饰的类属性和对象属性而言,如果不显示初始化,其默认将是进行默认初始化后的值,这与final本身出发点矛盾,


  因此,Java语法规定:


  final修饰的类属性和变量属性必须要进行显示初始化赋值。


  另外,无论对于基本数据类型还是引用数据类型,final修饰的变量都是首次显示初始化后值都不能修改。对于基本数据类型,很好理解。


  对于引用数据类型,引用变量指向的是实际的对象,但其存储的是所指向对象的地址,因此,其值不能修改并不意味着其所指向的对象不能修改。


  实例变量往往有三次赋值机会,


  分配空间,初始化属性,调用构造方法



  2、final 修饰方法


  final修饰的方法表示此方法已经是“最后的、最终的”含义,亦即此方法不能被重写(可以重载多个final修饰的方法)。


  此处需要注意的一点是:因为重写的前提是子类可以从父类中继承此方法,如果父类中final修饰的方法同时访问控制权限为private,


  将会导致子类中不能直接继承到此方法,因此,此时可以在子类中定义相同的方法名和参数,此时不再产生重写与final的矛盾,


  而是在子类中重新定义了新的方法。


/*

final修饰方法

*/

class Super{

//加上final之后就不能再覆盖了

//final修饰方法时表示该方法不能被子类覆盖

public final void method(){


}

}

class Sub extends Super{

//方法的覆盖

/*public final void method(){

}*/

}



  3、final修饰类


  final修饰类即表示此类已经是“最后的、最终的”含义。因此,用final修饰的类不能被继承,即不能拥有自己的子类。


  如果视图对一个已经用final修饰的类进行继承,在编译期间或发生错误。


/final类不能被子类继承,final让此类断子绝孙,所以当然不能被子类覆盖

final class Super{

//加上final之后就不能再覆盖了

//final修饰方法时表示该方法不能被子类覆盖

public final void method(){


}

}

/*class Sub extends Super{

//方法的覆盖

/*public final void method(){

}

}*/


以上就是动力节点java培训机构小编介绍的“java中final修饰变量、修饰符、方法、类的详细用法”的内容,希望对大家有帮助,更多java最新资讯请继续关注动力节点java培训机构官网,每天会有精彩内容分享与你。


相关免费视频教程推荐


java入门教程下载——final修饰方法局部变量:http://www.bjpowernode.com/xiazai/2578.html


开班信息

同类文章

微信搜索“动力节点Java学院“或扫二维码

关注官方微信免费领学习资料

动力节点Java培训机构,行业口碑最好的Java培训机构。

立即抢名额