访问说明符和访问修饰符有什么区别?
号“访问修饰符”是private
,protected
和public
官方术语,而术语“访问说明符”不会在Java language specification出现在所有和据我所知是没有的东西,被广泛使用。
“访问修饰符”是在Java language specification中使用的private
,protected
和public
的官方术语。 “访问说明符”在Java API doc中用作同义词,但这是我第一次注意到这一点。坚持使用JLS术语可能会更好。
+1用于证明JLS。我认为这毕竟只是语言障碍。 – BalusC 2010-02-10 17:12:27
从技术上讲,private,public,protected和default被视为访问说明符。这些处理谁可以...问题。修饰符afaik是易失性的,最终的,静态的,瞬态的等。这些处理如何..方面。
请为此提供JLS引用。这是毫无根据的。 – EJP 2010-05-28 05:22:37
JDI引用是我见过的在Java规范中使用的术语“访问说明符”的唯一地方。即使在那里,公共/保护/私人/包装也被称为“修饰”。真的没有理由在Java中使用'访问说明符'这个术语,这显然只是一个页面上的错误。
Java有基本上2类型修饰符:
- Java访问修饰符
- java的非访问修饰符
Java访问修饰符和Java访问说明是一回事,这是public
,private
,protected
。
通过使用访问说明符,我们定义谁可以访问我们的类/方法和变量(或任何与我们使用访问说明符)。 基本Java访问符四种类型 -
- 市民: - 可见的世界,
- 私人: - 可见的只有类,
- 保护: - 可见的包和所有子类,和
- 默认: - 可见于封装
但是访问修饰符是一类/方法/可变的特性。 访问修饰符五种类型
- 决赛: - 最后完成的类,方法的实现,和变量
- 静: - 用于创建类的方法和变量
- 同步震荡修饰符: - 这是用来线程
- 摘要: - 用于创建抽象类和方法
- 短暂
在一些较早的语言中,public,private,protected和像C++这样的默认值被认为是访问说明符,而其他所有内容都被认为是访问修饰符,但在Java中没有用于说明符的术语,因此默认情况下所有内容都仅被视为修饰符。 所以公共,私有,保护,默认,最终,抽象,静态,strictfp,同步,本机,瞬态和易失性都只是修饰符。
它简单的测试,当我们编译下面的代码
私有类测试{}
我们将得到编译时错误说,修改私有这里不允许的。对于其他修改器也是如此。 也许java编译器(javac)只能将所有内容视为“修饰符”。
有趣的是,我从来没有在几年前看到这个特殊的问题,但你显然不是唯一一个想知道这个问题的人:http://www.google.com/search?q=difference+access+specifier+access+modifier;) – BalusC 2010-02-10 17:05:16