zoukankan      html  css  js  c++  java
  • 关键字的理解

    final关键字的作用

    相信对于final的用法,大多数人都可以随口说出三句话:

    1、被final修饰的类不可以被继承

    2、被final修饰的方法不可以被重写

    3、被final修饰的变量不可以被改变

     1     public static void main(String[] args) {
     2         final User u = new User("aaa");
     3         u.setName("bbb");
     4         System.out.println(u.toString());
     5     }
     6     static class User {
     7         private String name;
     8         public User(String name){
     9             this.name = name;
    10         }
    11         public String getName() {
    12             return name;
    13         }
    14         public void setName(String name) {
    15             this.name = name;
    16         }
    17         @Override
    18         public String toString() {
    19             return "User [name=" + name + "]";
    20         }
    21     }
    View Code

    可见,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的

    ---------------------------------------------------------------------------------------------------

    static关键字作用总结

    static关键字最基本的用法是:

    1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来

    2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来

    被static修饰的变量、被static修饰的方法统一属于类的静态资源,是类实例之间共享的,换言之,一处变、处处变。

    从JVM的类加载机制的角度讲,静态资源是类初始化的时候加载的,而非静态资源是类new的时候加载的。

    1、静态方法能不能引用非静态资源?不能,new的时候才会产生的东西,对于初始化后就存在的静态资源来说,根本不认识它。

    2、静态方法里面能不能引用静态资源?可以,因为都是类初始化的时候加载的,大家相互都认识。

    3、非静态方法里面能不能引用静态资源?可以,非静态方法就是实例方法,那是new之后才产生的,那么属于类的内容它都认识。

    静态块

    静态块也是static的重要应用之一。也是用于初始化一个类的时候做操作用的,和静态变量、静态方法一样,静态块里面的代码只执行一次,且只在初始化类的时候执行

    静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问。

    静态代码块是严格按照父类静态代码块->子类静态代码块的顺序加载的,且只加载一次。

    static修饰类

    这个用得相对比前面的用法少多了,static一般情况下来说是不可以修饰类的,如果static要修饰一个类,说明这个类是一个静态内部类(注意static只能修饰一个内部类),也就是匿名内部类。

    import static

    import static java.lang.Math.*;

    =========================================================================

    总结前人经验,自己敲打每一行代码。

  • 相关阅读:
    COJ 0981 WZJ的数据结构(负十九)树综合
    BZOJ 3153 Sone1
    点分治模板
    thinkphp或thinkcmf 《文章编辑,文章添加》 访问另一个表的分类,添加入另一个表时将id值以(,)逗号分隔储存,编辑时以(,)逗号分隔并且相等的id值被选中
    《手机端》让多出的导航变水平拖动,不让他 float 撑下去
    favicon.ico 网站小图标标识
    CSS3实战开发: 折角效果实战开发
    jquery怎么在点击li标签之后添加一个在class,点击下一个li时删除上一个class?
    position 有五个值:static、relative、absolute、fixed、inherit。
    CSS3 transition 属性过渡效果 详解
  • 原文地址:https://www.cnblogs.com/qypx520/p/5737442.html
Copyright © 2011-2022 走看看