JAVA编程之static、final修饰符

时间:2021-01-09 21:07:26

    修饰符的作用是让被修饰的内容具备特定的功能, 在程序中合理使用修饰符可以在语法和功能上实现很多需要的效果。 Java 语言中的修饰符主要有 5个: static、 final、 native、 abstract 和 synchronized。 这里说说 static、final 和 native 的作用。

static修饰符:

   static 关键字的中文意思是静态的, 该修饰符可以修饰成员变量, 成员常量和成员方法。 使用该关键字修饰的内容, 在面向对象中 static 修饰的内容是隶属于类, 而不是直接隶属于对象的, 所以 static 修饰的成员变量一般称作类变量, 而 static 修饰的方法一般称作类方法。 另外, static 还可以修饰代码块。
1、静态变量     static 修饰的变量称作静态变量。 静态变量和一般的成员变量不同,一个类在加载到内存时, 静态变量只初始化一次, 也就是说所有对象的静态变量在内存中都只有一个存储位置, 每个对象中的静态变量都指向内存中同一个地址, 它是在所有的对象之间共享的数据。 另外静态变量在引用时比较方便。 所以一般在需要实现以下两个功能时使用静态变量:
   l、在对象之间共享值时。    2、方便访问变量时。
2、静态方法:    static 修饰的方法称作静态方法。 静态方法和一般的成员方法相比,不同的地方有两个: 一是调用起来比较方便, 二是静态方法内部只能使用静态的成员变量。 所以一般静态方法都是类内部的独立的功能方法。 例如为了方便方法的调用,Java API中的Math类中所有的方法都是静态的,而一般类内部的static方法也是方便其它类对该方法的调用。


3、静态代码块:   
    静态代码块指位于类声明的内部,方法和构造方法的外部,使用static修饰的代码块。 静态代码块在该类第一次被使用时执行一次, 以后再也不执行。在实际的代码中, 如果需要对类进行初始化的代码, 可以写在静态代码块的内部。
    示例代码:    public class StaticBlock{        static{                    System.out.println(“ 静态代码块!” );                  }        }




final修饰符:

1、final数据:     final 关键字是最终的、 最后的意思, 在程序中可以用来修饰类、 成员变量和方法的声明, 由该关键字修饰的内容都是不可变的。

    final 修饰的数据是常量, 常量既可以出现在类的内部, 也可以出现在方法或构造方法的内部。 在程序中常量只能赋值一次。

2、final方法:    final 关键字也可以修饰方法, final 修饰的方法称作最终方法, 最终方法不能被覆盖, 也就是不能在子类的内部重写该方法。使用 final 修饰方法, 可以在一定程度上提高该方法的执行速度, 应为在调用该方法时, 就不需要进行覆盖的判断了。

3、final类:
    final 关键字也可以修饰类, final 修饰的类称作最终类, 最终类不能被继承, 也就是该类不能有子类。并且final 类内部的每个方法都是 final 方法。




native修饰符:

    native 关键字是“ 本地的” 意思, native 修饰的方法, 只有方法的声明使用 java 语言实现, 而方法内部的代码都是在 Java 虚拟机内部使用其它语言实现。一般 native 的方法, 都是和系统操作有关的方法, 或者是基于底层实现效率比较高的方法, 常见于系统类中。 例如 System 类的 arraycopy 方法等。