修饰符总结 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 修饰成员变量和构造函数时没任何作用, 修饰成员函数时仅仅限于覆盖.
*/

AJPFX关于modifier总结的更多相关文章

  1. [转]Java反射之如何判断类或变量、方法的修饰符(Modifier解析)

    Java针对类.成员变量.方法,有很多修饰符,例如public.private.static.final.synchronized.abstract等,这些修饰符用来控制访问权限或其他特性. 本文就用 ...

  2. jmeter 中的 HTTP URL Re-writing Modifier

    URL rewriting modifier,因为tomcat的session实现不是通过cookie的,而是通过session id的,就是说,用户登录有了session之后,tomcat就会维护一 ...

  3. 【转载】#273 - Parameter Modifier Summary

    Here's a summary of the different parameter modifiers and how the behavior changes for each, when us ...

  4. 解决Deprecated: preg_replace(): The /e modifier is deprecated, use

    使用php5.5运行ecshop的时候出现如下错误Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace ...

  5. 7.modifier插件的自定义和使用

    1.在plugins下面创建一个文件 modifier.changeDate.php 编写: <?php function smarty_modifier_changeDate($utime,$ ...

  6. Sample Code for Qp_preq_pub.Price_request Api to Simulate an Ask for Promotion Modifier

    DECLARE p_line_tbl QP_PREQ_GRP.LINE_TBL_TYPE; p_qual_tbl QP_PREQ_GRP.QUAL_TBL_TYPE; p_line_attr_tbl ...

  7. java反射(java.lang.reflect)---java.lang.reflect.Modifier中状态码

    1. 详情请看jvm(虚拟机)规范 java.lang.reflect.Modifier public static final int ABSTRACT 1024 public static fin ...

  8. An entry point cannot be marked with the 'async' modifier

    I copied below code from this link.But when I am compiling this code I am getting an entry point can ...

  9. AJPFX简述:MetaTrader 4移动交易平台

    (AJPFX)移动交易平台可以让客户随时通过客户手中的移动设备例如智能手机.PDA等管理自己帐户和进行交易.移动交易平台提供了完整的交易帐户管理分析选项,当客户无法使用台式计算机的时候,移动交易平台为 ...

随机推荐

  1. PHP引用是什么?

    引用是什么 在 PHP 中引用意味着用不同的名字访问同一个变量内容.这并不像 C 的指针,替代的是,引用是符号表别名.注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字.最 ...

  2. Android之键盘监听的执行机理【看清键盘监听的本质】【入门版】

    以EditText为例: 1.Activity本身也有按键监听 editText按键监听与Activity按键监听关系: Activity本身也有按键监听 并且分按下和松开两个事件监听 editTex ...

  3. 2016/04/29 smarty模板 1, 初步 目标 : 变量 运算符 表达式 流程控制 函数

    ① 从配置文件中读取配置: 1,在模板页面加载配置文件 html页面 不是php页面 <{config_load file='fo.conf'}> 2,在需要用到配置的地方加 <{# ...

  4. CXF 中自定义SOAPHeader

    Interceptor是CXF架构中一个很有特色的模式.你可以在不对核心模块进行修改的情况下,动态添加很多功能.这对于CXF这个以处理消息为中心的服务框架来说是非常有用的,CXF通过在Intercep ...

  5. 5.2【Linux 内核网络协议栈源码剖析】socket 函数剖析 ☆☆☆

    深度剖析网络协议栈中的 socket 函数,可以说是把前面介绍的串联起来,将网络协议栈各层关联起来. 应用层 FTP SMTP HTTP ... 传输层 TCP UDP 网络层 IP ICMP ARP ...

  6. ubuntu php5.6源码安装

    本系列的lnmp的大框架基本上是按照http://www.linuxzen.com/lnmphuan-jing-da-jian-wan-quan-shou-ce-si-lnmpda-jian-yuan ...

  7. Masonry 动画更新约束

    前言 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万 ...

  8. Spring事物注意事项

    一.尽量用注解声明事务 过去开发喜欢用tx:advice+aop命名空间方式来配置事务,一次配置对满足切点规则的方法永久生效.但也可能因此导致事务滥用,在不需要用到事务的地方用了会影响系统的并发性能. ...

  9. Lightoj 1068(数位DP)

    求一段区间中被k整除,各个位数相加之和被k整除的数的个数. 这不是重点,重点是k太大了,最大值有10000,所以不能直接开那么大的数组. 仔细分析一下可以发现,由于数最大是2的31次方(2147483 ...

  10. js bind es5函数柯里化

    绑定函数 bind()最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的this值.常见的错误就像上面的例子一样,将方法从对象中拿出来,然后调用,并且希望this指向原来的对象. 如果不做特 ...