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
  • 相关阅读:
    Maven关于web.xml中Servlet和Servlet映射的问题
    intellij idea的Maven项目运行报程序包找不到的错误
    修改Maven项目默认JDK版本
    刷题15. 3Sum
    刷题11. Container With Most Water
    刷题10. Regular Expression Matching
    刷题5. Longest Palindromic Substring
    刷题4. Median of Two Sorted Arrays
    刷题3. Longest Substring Without Repeating Characters
    刷题2. Add Two Numbers
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286844.html
Copyright © 2011-2022 走看看