zoukankan      html  css  js  c++  java
  • AJPFX关于modifier总结

    修饰符总结 Modifiers
            函数修饰符始终在返回值类型之前!!!
            变量修饰符始终在变量类型之前!!!
    --------------------------------------------------------------------------------
    ClassModifier: one of
    Annotation public protected private
    abstract static final strictfp
            外部类: 不可被 protected, private, static 和 final 修饰
            成员内部类: 都可以
            非成员内部类: 都不可以

    FieldModifier: one of
    Annotation public protected private
    static final transient volatile

    MethodModifier: one of
    Annotation public protected private
    abstract static final synchronized native strictfp

    ConstructorModifier: one of
    Annotation public protected private

    InterfaceModifier: one of
    Annotation public protected private
    abstract static strictfp

    VariableModifier: one of
    Annotation final
    --------------------------------------------------------------------------------
                                                            class        field        method        constructor        interface        variable
    Annotation                                        √                √                √                √                        √                        √

    public/protected/private        √                √                √                √                        √                        ×

    abstract/strictfp                        √                ×                √                ×                        √                        ×

    static                                                √                √                √                ×                        √                        ×

    final                                                √                √                √                ×                        ×                        √

    transient/volatile                        ×                √                ×                ×                        ×                        ×

    synchronized/native                        ×                ×                √                ×                        ×                        ×
    --------------------------------------------------------------------------------
    Annotation
            以上都可以
    public/protected/private
            权限修饰符, 除了 variable 都可以 ->常考
    abstract/strictfp
            class/interface/method
    static
            除了 constructor 和 variable 都可以 -> 常考
    final
            除了 constructor 和 interface 都可以
    transient/volatile
            只能修饰 field
    synchronized/native
            只能修饰 method
    --------------------------------------------------------------------------------
    final 与 abstract 是冲突的.

    --------------------------------------------------------------------------------
    /*
    包与包之间成员和构造器的访问权限总结:
                                    public                protected        无修饰符        private
    同一个类中                ok                        ok                        ok                        ok
    同一个包中                ok                        ok                        ok
    不同包子类                ok                        ok
    不同包中                ok

    不同包成员访问的前提: 被访问的类必须是 public, 且被访问的成员也必须是 public 的
    不同包中的子类还可以直接访问父类中 protected 的成员和构造器

    不同包访问, 有2层权限限制: 
            第1层是类的权限限制, 类的权限可以是 public/无权限修饰符2种
            第2层是成员的权限限制, 成员的权限可以是 public/protected/无权限修饰符/private 等4种
            必须类的权限允许访问, 才考虑成员的权限是否允许访问!!!

    实际编程中, 访问的类一般都是不同包的:
            类是 public 的, 构造器是 public 的, 
                    允许被不同包的类创建对象; 否则禁止被不同包的类创建对象
            类是 public 的, 构造器是 protected 的
                    只允许被不同包的类继承(就是设计来被继承的, 此时不允许被不同包的类创建对象)
            类是 public 的, 构造器是 private 的(一般也是 final 的)
                    不允许被创建对象(包括本包的类都不行), 此时一般提供 public 方法获取类的对象

    不同包中, protected 的作用就是限制成员和构造器只能被子类访问;
    同一包中, protected 修饰成员变量和构造函数时没任何作用, 修饰成员函数时仅仅限于覆盖.
    */

  • 相关阅读:
    <Ajax> 四. get请求(验证用户名是否存在)
    <Ajax> 三. 前端和后端通过表单数据交互
    <Ajax> 一. PHP基本使用和基本数据类型
    <Ajax> 二. PHP选择语句和循环语句
    <Bootstrap> 学习笔记八. 导航栏和颁
    <Bootstrap> 学习笔记七. 下拉菜单和标签页
    <Bootstrap> 学习笔记六. 栅格系统使用案例
    <Bootstrap> 学习笔记五. 按钮组的使用
    <Bootstrap> 学习笔记三. 浮动的使用
    <Bootstrap> 学习笔记四. 表单组和输入框组的使用
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10841880.html
Copyright © 2011-2022 走看看