JavaSE学习笔记——static和final关键字

static关键字

概念:java中可以使用static修饰属性,方法,表示该资源为静态资源,与实例无关.

static修饰属性

特点:
1. static修饰的属性称为静态属性,静态变量
2. 静态属性和类相关与实例无关,通常保存在JVM中静态块中.
3. 静态属性与实例无关,访问静态资源通常通过类名直接访问.

static修饰代码块

特点:static修饰的代码块称为静态块,静态块在类加载的时候执行.通常使用静态块初始化资源.

static修饰方法

特点:static修饰的方法称为静态方法,在静态方法中只能直接调用当前类中的静态资源.

单例(单子)设计模式

特征:在同一个内存中保证只能有一个实例对象,核心在于构造器私有.

   public class Single{
       //提供一个static的属性,在类加载时调用构造器实例化对象
       private static Single s=new Single();
       /**
        单例设计模式最为核心:构造器私有,防止外部调用构造器实例化对象
        */
       private Single(){

       }
       /*
        提供一个静态方法获得实例对象
        */
       public static Single newInstance(){
           return s;
       }

   }

final

特点:final表示最终的,可以用于修饰类,属性,方法,局部变量.

final修饰类

特点:final修饰的类不能被继承的.如:String类,在实际开发中由于final修饰类,会影响该类的扩展性,不推荐使用.

  public final class 类名{  }

final修饰方法

特点:final修饰的方法不能被重写,可以被继承:如:Object#getClass,在实际应用中由于final修饰的方法不能被重写,所以很少使用.

   public final 返回值类型 方法名(参数类型列表){ ... }

final修饰属性

特点:final修饰的属性,系统不再提供初始化操作,必须手动初始化

final修饰属性的初始化时机

  • 实例变量:非static的变量

    扫描二维码关注公众号,回复: 927252 查看本文章
    1. 在声明fianl属性的同时就进行初始化 private final int a=1;
    2. 在声明之后,通过构造器进行初始化
    3. final修饰的属性一旦初始化之后值不能改变
  • 静态变量:static修饰的变量

    1. final修饰的静态变量称为常量,常量的命名建议全部大写.
      public static final double PI=3.1415;
    2. 可以在声明常量的同时进行初始化
    3. 可以在静态块中对其进行初始化
    4. 对于常量而言通常使用public修饰

final修饰局部变量
特点:final修饰局部变量,在初始化之后不能改变

猜你喜欢

转载自blog.csdn.net/ZH_csdn_1997/article/details/80345987