首页 > 其他分享 >Final关键字

Final关键字

时间:2024-04-03 23:45:32浏览次数:16  
标签:final MAX void class 关键字 static Final public

final可以修饰类、属性、方法、局部变量。

  1. 不希望类被继承时使用
  2. 不希望父类的某个方法被子类覆盖或重写
final的基本操作
public class Final01 {
    public static void main(String[] args) {

    }
}

final class A {
} // 不允许被继承的类

//class B extends A{}
class C {
    public final void hi() {

    }
}

class D extends C {
//    @Override
//    public void hi() {
//        super.hi();
//    }
//}
}

class E {
    public final double PI_NUMBER = 3.14;
}

class F {
    public void say() {
        final double NUM = 10;
//        num = 9; 不能修改被final修饰的属性
        System.out.println(NUM);

    }
}

final修饰的属性又叫做常量,一般用大写字母下划线连接来命名。

final修饰的属性必须赋初值,并且往后不能在修改。赋值的位置:

  1. 定义时(public final int A =10)。
  2. 在构造器中。
  3. 在代码块中。
public class Final01 {
    public static void main(String[] args) {

    }
}
class A{
    public final double MAX_NUMBER=99;
    public final double MAX_NUMBER2;
    public final double MAX_NUMBER3;
    public A(){
        MAX_NUMBER2=99;
    }
    {
        MAX_NUMBER3=99;
    }
}

如果类不是final类,方法是final方法则,类可以继承,但是方法不能重写。

public class Final01 {
    public static void main(String[] args) {
        C c = new C();
        c.say();
        //方法不是不能重写
    }
}
class B {
    public final void say() {
        System.out.println("这是say方法");
    }
}
class C extends B{    }

如果一个类是final类其中的方法就不用加final了。final不能修饰构造方法。final和方法一起用效率高。

public class Final01 {
    public static void main(String[] args) {
        System.out.println(A.num);
    }
}
class A{
    public static final int num=11;
    static {
        System.out.println("A类的静态代码块");
    }
}

包装类:Integer、Double、Float、Boolean、String等都是final类。

标签:final,MAX,void,class,关键字,static,Final,public
From: https://www.cnblogs.com/vayenge/p/18077148

相关文章

  • (C++)auto关键字(C++11)——<入门>
    类型别名思考:随着程序越来越复杂,程序中用到的类型也越来越复杂,经常体现在:1.类型难于拼写2.含义不明确导致容易出错#include<string>#include<map>intmain(){std::map<std::string,std::string>m{{"apple","苹果"},{"orange","橙子"......
  • R6-4 2018Final静态成员(黑名单)
    R6-42018Final静态成员(黑名单)分数10作者fzu单位福州大学怡山小学生物组是公认的熊孩子天堂,他们每天都在做各种尝试,如:强迫蚕宝宝吃各种不同的菜叶,把小狗和小白鼠关进一个笼子里,重复输入流浪狗记录等等。忍无可忍的黄老师决定往成员信息里添加一项黑名单,限制黑名单中同学......
  • Debezium日常分享系列之:Debezium 2.6.0.Final发布
    Debezium日常分享系列之:Debezium2.6.0.Final发布一、重大改变1.MySQL2.MongoDB3.SQLServer4.Oracle5.Vitess6.ContainerImages二、新功能和改进1.用于iSeries连接器的Db22.Java17现在的编译时要求3.异步嵌入式引擎4.新的统一快照模式5.添加了新的匹配集合API6.......
  • 详解volatile 关键字的作用,Java 中能创建 volatile 数组吗
    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点面试官:volatile关键字的作用可见性:当一个线程修改了volatile变量的值,这个新值对于其他线程是立即可见的。这是因为在多线程环境下,线程在修改volatile变量的值时......
  • this关键字
    this关键字只能用于方法方法体内,在类中的非静态方法中使用。this表示当前对象。Java的this关键字的作用:①引用类中的数据成员②引用类中的成员方法;③调用本类的构造方法;④表示当前对象。“this.数据成员”引用对象的数据成员this.数据成员名“this.方法()”引用对象......
  • 面向对象14:static关键字详解
    ackagecom.oop.demo07;publicclassStudent{//staticprivatestaticintage;//静态变量多线程里会用到privatedoublescore;//非静态变量publicstaticvoidmain(String[]args){Students1=newStudent();System.out.p......
  • extern 关键字------非原创
    前面总结了static关键字,下面先说说static和extern能同时使用吗?答案是不能。 extern修饰全局变量和函数,被修饰的变量和函数可以在别的文件里使用。static修饰的变量和函数作用范围仅限于定义它的文件内部。 static要求去除符号表名称,extern要求通过符号名称链接,他俩先天就矛......
  • 二叉树结点关键字输出的递归算法实现
    在计算机科学中,二叉树是一种重要的数据结构,广泛应用于各种算法和程序设计中。二叉树的遍历是二叉树操作中的基础问题之一,其目的是以某种规则访问二叉树的每个结点,使得每个结点被且仅被访问一次。给定一个具有n个结点的二叉树,我们需要编写一个递归过程,以O(n)的时间复杂度输出......
  • 基于栈结构的非递归二叉树结点关键字输出算法
    基于栈结构的非递归二叉树结点关键字输出算法一、引言二、二叉树基本概念三、非递归遍历算法基础四、算法设计五、算法实现六、C代码示例七、算法分析八、优化与讨论一、引言在计算机科学中,二叉树是一种重要的数据结构,它广泛应用于各种算法和数据结构中。对于二叉树......
  • static 关键字2----不是原创
    在学习volatile关键字时,在此重温下C语言的其他关键字static。这个关键字可以说到处都在用,但是能否详细说清楚这个static应该怎么用,什么场景用,怎么用合适?当你写下static的时候,是否考虑了真的需要用static吗?在前面笔记中也有学习了static,但明显感觉得出来,当时对static的理解不到......