Java中的static和final关键字作用

一、static关键字

(一)Static属于类本身,他可以修饰方法、字段和内部类

(二)作用:确定所修饰的内容是属于类还是属于对象

(三)特点:

       1.static修饰的内容随着类的加载而加载

          当JVM把class字节码加载到虚拟机时,static修饰的成员已经自动加载到内存中。

       2.优于对象存在

          对象是我们new出来的,而static在加载字节码时就已经自动加载到JVM中了。

       3.可以直接使用类名访问static成员

          因为static修饰的成员属于类,不属于对象。

       4.static修饰的成员被该类型的所有对象共享

         该类创造出来的对象都可以访问static成员(本质上还是通过类名直接访问的)

(四)其他

类中的成员

字段(成员变量)、方法、内部类
类成员和实例成员
类成员:使用static修饰的成员
实例成员:未被static修饰的成员
类成员和实例成员的访问
在static方法中只能调用static成员
非static方法可以访问静态成员和非静态成员
什么时候使用static
当某个成员被所有对象共享时,为了节省空间,没有必要每个对象都储存一份,此时可以使用static。

 

二、final关键字

(一)继承机制存在一些弊端,如破坏了封装,子类可以访问父类当中的实现细节,可以覆盖父类当中的方法等,因此需要final关键字。

(二)final关键字的作用:

      1. 修饰变量: 被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。

      2. 修饰方法:该方法不可被子类重写。但是可以被重载!

      3. 修饰类: 修饰的类不能被继承。比如:Math、String等。

 

三、访问权限修饰符

Java中的static和final关键字作用_第1张图片

      1. private 表示私有,只有自己类能访问(修饰属性变量时,要给他提供getter和setter)

      2. default表示没有修饰符修饰,只有同一个包的类能访问

      3. protected表示可以被同一个包的类以及其他包中的子类访问

      4. public表示可以被该项目的所有包中的所有类访问

你可能感兴趣的:(Java一些关键字)