千家信息网

如何分析modifier修饰符

发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,这篇文章将为大家详细讲解有关如何分析modifier修饰符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。修饰符总结 Modifiers函数修饰符始终在
千家信息网最后更新 2024年11月16日如何分析modifier修饰符

这篇文章将为大家详细讲解有关如何分析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 修饰成员变量和构造函数时没任何作用, 修饰成员函数时仅仅限于覆盖.
*/

关于如何分析modifier修饰符就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0