2010-02-10 142 views
34

在Java中,是访问说明符访问修饰符是一样的东西吗?访问说明符和访问修饰符有什么区别?

+5

有趣的是,我从来没有在几年前看到这个特殊的问题,但你显然不是唯一一个想知道这个问题的人:http://www.google.com/search?q=difference+access+specifier+access+modifier;) – BalusC 2010-02-10 17:05:16

回答

37

号“访问修饰符”是privateprotectedpublic官方术语,而术语“访问说明符”不会在Java language specification出现在所有和据我所知是没有的东西,被广泛使用。

“访问修饰符”是在Java language specification中使用的private,protectedpublic的官方术语。 “访问说明符”在Java API doc中用作同义词,但这是我第一次注意到这一点。坚持使用JLS术语可能会更好。

+2

+1用于证明JLS。我认为这毕竟只是语言障碍。 – BalusC 2010-02-10 17:12:27

0

据我说,是的,这两个术语指的是相同的东西,可互换使用。

+0

这不取决于你,它取决于JLS,而“访问说明符”一词根本就没有出现。 – EJP 2010-05-28 05:28:16

-3

从技术上讲,private,public,protected和default被视为访问说明符。这些处理谁可以...问题。修饰符afaik是易失性的,最终的,静态的,瞬态的等。这些处理如何..方面。

+0

请为此提供JLS引用。这是毫无根据的。 – EJP 2010-05-28 05:22:37

0

JDI引用是我见过的在Java规范中使用的术语“访问说明符”的唯一地方。即使在那里,公共/保护/私人/包装也被称为“修饰”。真的没有理由在Java中使用'访问说明符'这个术语,这显然只是一个页面上的错误。

1

Java有基本上2类型修饰符:

  1. Java访问修饰符
  2. java的非访问修饰符

Java访问修饰符和Java访问说明是一回事,这是publicprivateprotected

-3

通过使用访问说明符,我们定义谁可以访问我们的类/方法和变量(或任何与我们使用访问说明符)。 基本Java访问符四种类型 -

  1. 市民: - 可见的世界,
  2. 私人: - 可见的只有类,
  3. 保护: - 可见的包和所有子类,和
  4. 默认: - 可见于封装

但是访问修饰符是一类/方法/可变的特性。 访问修饰符五种类型

  1. 决赛: - 最后完成的类,方法的实现,和变量
  2. 静: - 用于创建类的方法和变量
  3. 同步震荡修饰符: - 这是用来线程
  4. 摘要: - 用于创建抽象类和方法
  5. 短暂
+2

请为这个毫无根据的断言提供一个参考。 – EJP 2013-09-20 04:51:56

+4

谁上传了这个?这显然是错误的。 – gexicide 2014-09-10 10:27:06

+0

Java观点这个答案是错误的。所有关键字都被视为** Access修饰符**。这可能是正确的其他编程语言 – Premraj 2016-01-09 01:16:18

0

在一些较早的语言中,public,private,protected和像C++这样的默认值被认为是访问说明符,而其他所有内容都被认为是访问修饰符,但在Java中没有用于说明符的术语,因此默认情况下所有内容都仅被视为修饰符。 所以公共,私有,保护,默认,最终,抽象,静态,strictfp,同步,本机,瞬态和易失性都只是修饰符。

它简单的测试,当我们编译下面的代码

私有类测试{}

我们将得到编译时错误说,修改私有这里不允许的。对于其他修改器也是如此。 也许java编译器(javac)只能将所有内容视为“修饰符”。

3

术语访问说明符由C++程序员使用,不在java中。在Java中,我们使用访问修饰符

例如:当我们声明一个类私人,静态编译器清晰地显示出错信息如下:
enter image description here