zoukankan      html  css  js  c++  java
  • java四种权限修饰符

    1. 访问权限修饰符
      public:意为公开的,访问权限最高,可以跨包访问。
      protect:意为受保护的,权限次之,可以在同包和子/父类中访问。
      default:意为默认的,一般不写,权限次之,可以在同包中访问。
      private:意为私有的,权限最低,只能在本类中访问。
      所以,为了保证安全性,一般把访问权限降到最低。
      四种访问权限修饰符如下图:
      这里写图片描述

    2.abstract(抽象)修饰符
    ①abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
    ②abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以”;”代替。需要子类继承实现(覆盖)。
    举例:

    abstract class E{
        public void method1(){
        /*code*/
        }; 
        public abstract void method2();//public abstract 可以省略
        }
        class F extends E{
        //实现抽象方法method2
             void method2(){
            //写具体实现的代码 
        }
        //method1不是抽象方法,不需要具体实现,但如果写了具体实现的方法会覆盖原有方法
        }
    

    最后再主方法里面定义一个父类引用指向子类对象,就会发生多态现象,比如

        E e=new F();//E是抽象父类,F是E的继承类
        e.show();//实际调用了子类里面的method2()方法
    总结:
    ①抽象类和普通类差不多,只是不能用new实例化,必须要继承。
    ②抽象的方法所在类一定是抽象类;抽象类中的方法不一定都是抽象方法。
    ③抽象类中的抽象方法必须在子类中写具体实现的方法;如果抽象类中的方法是具体方法,那么重写该方法会覆盖原方法。
    

    3.final修饰符
    final变量必须被显式初始化,并且只能被赋值一次值
    final修饰基本类型变量的时候, 该变量不能重新赋值
    final修饰引用类型变量的时候, 该变量不能重新指向其他对象
    final修饰的方法为最终的方法, 该方法不能被重写
    private类型的方法都默认为是final方法,因而也不能被子类重写
    final修饰的类为最终的类, 不能被继承


    4.static修饰符
    如果声明了静态方法或变量,值是放在方法区,因为方法区是一个数据共享区;所以不管什么变量访问它,都是同一份.
    在静态方法中不能直接访问实例方法和实例变量.
    在静态方法中不能使用this和super关键字.
    静态方法不能被abstract修饰.
    静态的成员变量可以使用类名或者是对象进行访问,非静态成员变量只能使用对象进行访问.
    静态函数可以直接访问静态的成员,但是不能够直接访问非静态成员.,非静态函数可以访问静态和非静态成员.
    当类被加载时,静态代码块只能被执行一次。类中不同的静态方法代码块按他们在类中出现的顺序被依次执行.
    当多个修饰符连用时,修饰符的顺序可以颠倒,不过作为普遍遵守的编码规范,通常把访问控制修饰符放在首位,其次是static或abstact修饰符,接着就是其他的修饰符.

    //这些修饰符放在一起是无效的
    abstractprivate 
    abstractfinal 
    abstractstatic
  • 相关阅读:
    [算法] 网络中最小费用最大流
    [题解] 完美数
    [算法] 扫描线及其应用
    等待时间
    键盘操作
    鼠标操作
    元素常用操作
    元素的定位·CSS
    元素的定位·XPATH
    元素的定位
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286844.html
Copyright © 2011-2022 走看看