修饰符总结 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. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  2. The Pilots Brothers&#39; refrigerator-DFS路径打印

    I - The Pilots Brothers' refrigerator Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format ...

  3. mongodb Failed to start LSB: An object/document-oriented dat

    解决办法: cd /var/lib sudo rm -rf ./mongodb sudo mkdir mongodb sudo chown -R mongodb mongodb/ sudo servi ...

  4. JS文件中引用另一个JS文件

    1.生产项目上遇到一个Bug,需要修改JS文件,添加Jquery代码,但是原来的页面没有添加对Jquery文件的引用,无法修改原来的页面(自动生成的HTML) 这就需要在JS文件中添加对Jquery文 ...

  5. C项目实践--俄罗斯方块(2)

    在VS中新建win32 Application Proj,选择Empty ,完成TetrisWin项目创建.新建tetris.c和tetris.h两个文件,打开tetris.h文件. 首先要包括的是可 ...

  6. caioj1522: [NOIP提高组2005]过河

    状态压缩的经典题. 按照一般做法,DP一维时间O(n),显然跑不过.考虑到石子较少,实际上有很长一段是一定可以跳到的,设两个石头分别在i点和j点,跳跃的路程为S到T.那么从i点可以跳到i+S到i+T. ...

  7. android ndk环境搭建,如果是mac,请先装mac make编译器(可以使用Xcode进行安装)

    Android SDK:android-sdk-mac_86Android NDK: android-ndk-r4b-darwin-x86EclipseADTCDTANT搭建Android SDK开发 ...

  8. 【JLOI 2011】 不重复的数字

    [题目链接] 点击打开链接 [算法] 本题用map很好写,笔者用的是哈希的写法 [代码] #include<bits/stdc++.h> using namespace std; #def ...

  9. RobotFrameWork--selenium2模拟chrome的user agent

    ${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver ${opt ...

  10. bzoj 4405: [wc2016]挑战NPC【带花树】

    把每个筐子拆成3个,分别表示放0/1/2个,然后把这三个点两两连起来,每一个可以放在筐里的球都想这三个点连边. 这样可以发现,放0个球的时候,匹配数为1,放1个球的时候,匹配数为1,放2个球的时候,匹 ...