删除访问修饰符
Java最初确实有修饰符,但它在JDK 1.0.2(第一个稳定版本,我们今天所知道的Java 1.0)中被删除了。一些关于 JDK 1.0.2 的教程(这里和这里)是这样说的:private protected
注意:Java 语言的 1.0 版本支持五个访问级别:上面列出的四个级别加上 。在高于 1.0 的 Java 版本中不支持访问级别;您不应该再在Java程序中使用它。private protected
private protected
关于 SoftwareEngineering.SE 的另一个答案是:
Java最初有这样一个修饰符。它是在Java 1.0中编写但被删除的。private protected
现在看一下 Java 版本历史记录:
JDK 1.0
第一个版本于1996年1月23日发布,名为Oak。第一个稳定版本JDK 1.0.2被称为Java 1。
由此,我们可以得出结论,关于1.0.2版的教程指的是第一个版本JDK 1.0,其中语言被称为Oak,但 SoftwareEngineering.SE 中的那个版本指的是第一个稳定版本JDK 1.0.2,称为Java 1.0,在那里它被删除了。
现在,如果您尝试在Java 1.0文档中搜索它,您将找不到它,因为如前所述,它在JDK 1.0.2(也称为Java 1.0)中被删除了。当您查看所发布链接的“上次修改时间”时,这再次得到证明。您发布的链接最后一次修改是在 1996 年 2 月。Java 1.0/JDK 1.0.2 在被删除时,是在 1996 年 2 月之后发布的,根据规范,1996 年 8 月发布。private protected
删除原因
一些来源也解释了原因,比如这个。引用:private protected
什么是私人保护?
早期,Java语言允许修饰符的某些组合,其中之一是。的含义是将可见性严格限制为子类(并删除包访问)。这后来被认为有些不一致和过于复杂,不再受支持。[5]private protected
private protected
[5]在Java的Beta2版本中,修饰符的含义发生了变化,并且组合同时出现。他们修补了一些潜在的安全漏洞,但让许多人感到困惑。protected
private protected
SoftwareEngineering.SE 也支持这一点,说它不值得不一致和额外的复杂性,所以它很早就被删除了。
解释
我对这一切的解释是,也许,在橡树时代,两者被允许共存(因此合并)。由于 的含义已更改为 1,因此可能需要同时允许 和。引言变得过于复杂,不值得,因此最终被删除。当Java 1.0 / JDK 1.0.2推出时,它已经被删除,因此无法在文档中找到。protected
private
protected
1 个在 Oak 语言规范第 4.10 节“访问变量和方法”中,请注意,默认修饰符为:protected
默认情况下,类中的所有变量和方法都受到保护。
这与我们今天的默认包访问完全不同。这可能为 需要 铺平了道路,因为限制性太强,太宽松。private protected
private
protected