final、static的相关知识

    xiaoxiao2022-07-07  201

    fina static

    finalstatic

    final

    1.final为实例域 2.final修饰的类是不能被继承的,final类中的方法都是默认为final。 3.final的方法不能被子类方法所覆盖,但是可以被继承使用。 4.final修饰的变量为常量,只能为赋值一次。 如果final修饰的成员属性在定义时候没有赋值,那么只能在构造代码块和构造方法里面赋值. 5.final修饰的对象是不能被重新引用。但是对象里面的属性可以被修改的。 6.private的方法默认是final,所以不能被子类的方法覆盖。

    static

    1.static表示静态或者全局。 2.当static修饰属性,属性则为类属性,但不是对象属性。static定义的方法为类方法。两者调用最好用class.method/property的方法来调用 3.static不能修饰class 也不能修饰方法内的局部变量。 4.static定义的方法为类方法 5.静态方法中不能访问非静态成员,而非静态方法中可以访问静态成员。 6.如果访问只能对象实例化后才能访问7.static修饰出的静态代码块无论实例化多少对象 都只实现一次 而构造代码块每实例化一个对象就执行一次

    补充 2019.5.28 static是静态修饰关键字,可以修饰变量和程序块以及类方法: 当定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存; 当修饰一个程序块的时候(也就是直接将代码写在static{…}中)时候,虚拟机就会优先加载静态块中代码; 当修饰一个方法时候,就表示该方法是类方法,可以直接通过类来调用而不需要新建对象。

    final可以修饰变量、方法及类, 当定义一个final变量时,jvm会将其分配到常量池中,程序不可改变其值,可以把final定义的变量理解为常量; 当你定义一个方法时,该方法在子类中将不能被重写; 当你修饰一个类时,则表示该类不能被继承

    最新回复(0)