• (转)JAVA中的权限修饰符


    Java中修饰符总结:

      1. 访问控制修饰符 

        访问控制修饰符 

        作用: 用于控制被修饰变量、方法、类的可见范围. 
        public的访问级别是最高的,其次是protected、默认和private. 
        成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有. 
        存在继承关系时,父类不可以是private,因为子类无法继承 
        顶层类可以处于公开或默认级别,顶层类不能被protected和private修饰. 
        局部变量不能被访问控制修饰符修饰 . 
        下图是在不同情况下各种权限修饰符的作用范围: 
        在不同情况下各种权限修饰符的作用范围 

        总结: 在不同包下面能够访问的权限修饰符只有: pulbic与protected,但是protected必须要有继承的关系才能够访问。

        1. abstract修饰符

          抽象类不能被实例化. 
          抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象方法. 
          如果子类没有实现父类中所有的抽象方法,子类也必须定义为抽象类. 
          抽象类不能被定义为private、final、和static类型. 
          没有抽象的构造方法. 
          抽象方法没有方法体,如果一个方法没有方法体,那么该方法必须声明为抽象的方法. 
          非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法实现.

        2. final修饰符

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

        3. static修饰符

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

          注意:以下修饰符一起用是无意义的,会导致编译错误: 
          abstract与private 
          abstract与final 
          abstract与static

  • 相关阅读:
    【BZOJ 3732】 Network
    【BJOI 2018】 求和
    【HDU 1005】 Number Sequence
    【HDU 3652】 B-numbers
    【SCOI 2007】 降雨量
    BZOJ2186 SDOI2008沙拉公主的困惑(数论)
    #38 游戏(线段树)
    BZOJ2339 HNOI2011卡农(动态规划+组合数学)
    BZOJ3107 CQOI2013二进制A+B(动态规划)
    BZOJ3083 遥远的国度(树链剖分+线段树)
  • 原文地址:https://www.cnblogs.com/xujingyang/p/6441558.html
Copyright © 2020-2023  润新知