受保护的 访问说明符是相同的封装内可见,并且还在子类中可见,而默认 为一个 包级别的访问specifie r和它可以在同一个包中可见。
受保护的 遗嘱在同一软件包中充当公共角色,而在软件包中充当私有角色。
受保护的对象 也仅在子类对象方面充当包外部的公共对象。
受保护的 字段或方法不能用于类和接口。
在超类中声明为受保护 的字段,方法和构造函数只能由其他包中的子类访问。
同一包中的类也可以访问受保护的 字段,方法和构造函数,即使它们不是受保护 成员的类的子类也是如此。
public class ProtectedTest { // variables that are protected protected int age = 30; protected String name = "Adithya"; /** * This method is declared as protected. */ protected String getInfo() { return name +" is "+ age +" 岁。"; } public static void main(String[] args) { System.out.println(new ProtectedTest().getInfo()); } }
输出结果
Adithya is 30 岁。
提及的类的任何成员如果没有任何访问说明符,则将其视为Default。
该d EFAULT 将作为同一封装内公开,并作为私人的户外包。
任何类的Default 成员都可用于同一软件包中的任何对象,并且在任何情况下都不能在软件包外部使用。
该默认限制只能访问 包级别,即使是具有类的默认数据成员,我们能不能延伸到访问之后。
public class DefaultTest { // variables that have no access modifier int age = 25; String name = "Jai"; /** * This method is declared with default aacees specifier */ String getInfo() { return name +" is "+ age +" 岁。"; } public static void main(String[] args) { System.out.println(new DefaultTest().getInfo()); } }
输出结果
Jai is 25 岁。
问题内容: 我正在尝试学习Java,当我经过访问说明符时,我对此表示怀疑。如果未指定默认值,则默认值与java中的受保护访问说明符有什么区别? 问题答案: 该说明符允许所涉及类的所有子类访问它们,无论它们驻留在什么包中,以及同一包中的其他代码。默认说明符允许同一程序包中的其他代码访问,但不允许位于不同程序包中的子类中的代码访问。参见Java语言规范6.6节。 编辑:根据MichaelSchmeiß
问题内容: 我刚开始读一本Java书籍,就纳闷了。如果未指定,则哪个访问说明符是默认的? 问题答案: 默认可见性称为“ package-private”(尽管您不能显式使用此属性),这意味着可以从该类所属的同一包内部访问该字段。 正如mdma指出的那样,接口成员的情况并非如此,其默认值为“ public”。
问题内容: 在Java中, 访问说明符 和 访问修饰符 是一回事吗? 问题答案: “访问修饰符”是Java语言规范中的正式术语,并在Java语言规范中使用。“访问说明符”在Java API文档中 同义使用,但这是我第一次注意到这一点。最好坚持使用JLS术语。
所以我在编译上面的代码时出现了明显的错误,但是错误是访问修饰符的非法组合,但是java文档http://docs.oracle.com/javase/tutorial/java/javao/accesscontrol.html说只有三个访问修饰符(public,private和protected),所以这些抽象的、最终的、public,private和protected是访问修饰符或访问说明符还是
问题内容: 我在理解Java(或其背后的设计)中的受保护的访问修饰符时遇到了一些麻烦。我认为这意味着程序包访问和通过继承包含抽象成员的类的对象的访问。 我编写了以下示例代码。我看到,如果未注释,注释掉的行会产生编译错误。为什么我可以通过Second中的Second对象而不是Second中的First对象访问pro? 问题答案: 该网页链接@MadProgrammer给出了一个体面的解释: “ pr