关于java中的final和static

关于final:

final:最终的  --> 可以类比成阉割手术,被final修饰没有后续
 可以修饰:类,成员变量,成员方法;
        修饰类:最终的类,不能有子类
        修饰成员变量:变成常量
            自定义常量的格式:
                public static final 数据类型 常量名 = 初始化值;
        修饰成员方法:子类不能重写

关于static:


static:静态的
    可以修饰:成员变量,成员方法
    被 static 修饰的成员具备以下特点:
        1.随着类的加载而加载优先于对象
        2.被所有的对象所共享
        3.可以使用类名直接调用
        
                                 非静态成员方法         静态成员方法
    静态成员变量                 可以                     可以
    静态成员方法                 可以                     可以
    非静态成员变量              可以                    不可以
    非静态成员方法              可以                    不可以


       静态虽好,但是只能访问静态的成员;
       若要在静态方法内使用非静态的成员,必须提前创建好对象,使用对象调方法(属性);比如main()方法
            
    静态在工具类中使用广泛:
        工具类编写的步骤:
            1.创建一个类  类名 XxxxUtils
            2.私有无参构造方法并不提供任何其他的构造方法
            3.把所有的成员方法使用 public static 修饰
                所有的成员变量 使用自定义常量表示;  public static final 去修饰
    
    static 不能和哪些关键字公用:
        1. this : this 代表的本类对象的引用,要有对象才会有this,而 static 修饰的方法是随着类的加载而加载优先于对象;
        2. abstract :  static 修饰的成员方法可以使用类名调用,而 abstract 修饰的方法没有方法体 不能被直接调用;

猜你喜欢

转载自blog.csdn.net/znmdwzy/article/details/81434153