美文网首页程序员
java中的修饰符

java中的修饰符

作者: 是萌萌哎 | 来源:发表于2019-03-03 15:38 被阅读0次

    java中的修饰符主要分为两种访问修饰符和非访问修饰符,下面就是具体的介绍啦,balalallala

    一、访问修饰符

    1.default:无修饰符,可以使用的范围(对象,类,接口,变量,方法)

    2.private:在同一类内可见,使用范围对象,变量,方法(不能修饰类)

    类和接口不可被声明为private,只能被所属类访问,类中公共的gette,setterr方法被外部类访问

    idea中创建getter的快捷方法:鼠标右键---》找到Generate就可以啦啦

    3.public:对所有类可见,使用范围对象,类,接口,变量方法

    4.protected:对同一包内的类和所有子类可见,使用范围:对象,变量,方法(不能修饰类)

    这个相当复杂了呢

    4.1子类与基类在同一包中:

         被声明为protected的变量,方法和构造器能被同一个包中的任何其他类引用

    4.2子类与基类不在同一包中:

          那么在子类中,子类可以访问从基类集成而来的protected方法,而不能访问基类实例的        protected方法

     4.3接口及接口的成员变量和成员方法不能声明为protected

     4.4子类能访问protected修饰符声明的方法和变量,保护不相关的类使用这些变量和方法

    注:默认访问修饰符:不适用任何关键字,默认使用。如:接口里的变量隐式声明:public static final  ,接口里的方法默认为:public

    二、非访问修饰符

    1.static修饰符:用于修饰方法和变量

      1.1静态变量:static关键字用来声明独立于对象的静态变量 (局部变量不能被声明为static变量)

      1.2静态方法:static关键字用来声明独立于对象的静态方法,方法中不可使用类的非静态变量

    2.final修饰符:修饰类、方法和变量,final修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量不可修改。

     2.1final变量一旦被赋值后,不能被重新赋值

     2.2final修饰符通常和static修饰符一起使用来创建变量

     2.3final方法可以被子类继承,但不能被子类修改,声明方法为final,主要防止该方法被修改

     2.4final类不能被继承

    3.abstract修饰符:创建抽象类和抽象方法

     3.1抽象类不能用来实例化对象,声明抽象类的唯一目的就是为了将来对该类进行补充

     3.2一个类不能同时被abstract和final修饰

     3.3一个类存在抽象方法,那么类一定要声明为抽象类

     3.4抽象类可以包含非抽象方法

     3.5抽象方法没有任何的事项方法,该方法具体实现由子类提供

     3.6抽象方法不能被声明成final和static

     3.7任何继承抽象类的子类必须实现父类所有的抽象方法

    4.synchronize和volatile修饰符:线程的编程

     4.1synchrinize修饰符:声明的方法同一时间只能被一个线程访问,可以应用于四个访问修饰符

     4.2transient修饰符(阻止变量被序列化):序列化的对象包含被transient修饰的实体变量时,java虚拟机跳过该特定的变量

     4.3volatile修饰成员变量:不可用在final前被线程访问时,强制以共享内存中重新读取该成员变量的值,成员变量发生变化时值会重新读写到内存中(共享内存,两个不同的线程总是看到某个成员变量的同一个值)

    相关文章

      网友评论

        本文标题:java中的修饰符

        本文链接:https://www.haomeiwen.com/subject/rkxyuqtx.html