关于javva中的修饰符

先解释下修饰符

在java中修饰符共分为三种类型的修饰符,分别是类修饰符、方法修饰符、变量修饰符,三种修饰符中每种修饰符又分为“访问控制修饰符”与“非访问控制修饰符”;而之所以存在修饰符则是为了对类、变量以及方法的访问进行限制,如果不进行限制的话肯定是不行的,这里原因就不一一列举了。

修饰符的使用

在我们代码中,访问控制修饰符放在最前面,后面紧跟的是非访问控制修饰符,举例:

  1. 类;
    访问控制修饰符:public
    非访问控制修饰符:抽象类修饰符abstract,最终类修饰符final
    关于javva中的修饰符
    如上所述,public访问控制修饰符在前,作为非访问控制修饰符的抽象类修饰符abstract紧跟其后,毫无疑问final修饰符也是同样的用法;

关于final修饰符与abstract修饰符修饰类的时候分别有什么作用?
当一个类被final修饰符修饰的时候,该类不能被继承;当一个类被abstract修饰的时候该类被称为抽象类,所谓抽象类就是天生就是要被继承的的类。以前对于抽象类的认识在于,只要类中存在抽象方法(即没有实现的方法)就成为抽象类,现在只要被abstract修饰的类就称为抽象类。
2. 方法;
访问控制修饰符:公共访问控制符public、保护访问控制符protected、私有访问控制符private、缺省默认default
非访问控制修饰符:抽象方法控制符abstract、静态方法控制符static、最终方法控制符final、本地方法控制符native
使用方法都一样,访问控制符在前,非访问控制符紧跟其后;
现在解释一下四个访问控制符:

关于javva中的修饰符
上述指的是对修饰的方法的访问权限,所谓同类指的是在同一个类中,所谓同包通俗一点讲就是在同一个文件夹中(如果一个在父包一个在子包则不算同包),子类指的是被继承的类,不同包就不用解释了!
关于方法中的四个非访问控制修饰符:
抽象方法控制符abstract:用abstract修饰的方法称为抽象方法,抽象方法仅有方法头,没有方法体和操作实现。
静态方法控制符static:用static修饰的方法称为静态方法,静态方法是属于整个类的类方法;而不使用static修饰、限定的方法是属于某个具体类对象的方法。由于static修饰的方法是属于整个类的,所以她不能操纵和处理某个对象的成员变量,只能处理属于整个类的成员变量。
最终方法控制符final:用final修饰符修饰的方法称为最终方法,最终方法是功能和内部语句不能更改的方法,即最终方法不能重写覆盖,final 修饰的方法可以防止子类对父类方法的错误修改,保证了程序的正确性和安全性。除了使用final修饰之外,所有被private修饰的方法,以及被final修饰的类(最终类)中的方法,都可以认为是最终方法;
本地方法控制符native:用native修饰的方法称为本地方法。为了提高程序的运行速度,需要用其他的高级语言书写程序的方法体,那么该方法可通过native修饰符定义为本地方法。
3. 变量;
访问控制符:公共访问控制符public、保护访问控制符protected、私有访问控制符private、缺省默认default
非访问控制符:静态域修饰符static、最终域修饰符final、易失(共享)域修饰符volatile、暂时性修饰符transient
访问控制符与非访问控制符的使用上述已经介绍过了,这里重点说一下变量中的四个非访问控制修饰符:
静态域修饰符static:用static修饰的成员变量仅属于类的成员变量,而不属于某个具体的对象,静态成员变量的值是存储在类的内存区域的公共存储单元,而不是保存在某一对象的内存区间,该类下的任一对象访问到的该成员变量都是同一值,而当该类下的任意对象对其类的静态变量修改时也是对同一存储单元进行修改。
最终域修饰符final:最终修饰符final是用来定义常量的,一个类的成员变量如果被final修饰,那么他的取值在程序执行的整个过程中是不变的。
易失(共享)域修饰符volcatile:待更新
暂时性修饰符transient:待更新

相关文章: