任何Java类成员的默认访问说明符是" 默认"。我的意思是当没有指定者在类的成员之前指定时,Java将其隐式地视为默认。您是否曾尝试在类中的方法或变量之前显式地放置默认说明符。尝试一次,看看。
Class demo{
default String name; // is this valid???
}
我只是想知道它背后的原因是什么?
答案 0 :(得分:6)
default
关键字与访问修饰符无关。
在访问修饰符的上下文中,缺少一个名为default的特定访问修饰符。
default
关键字的实际用途是 -
如果没有大小写与指定值匹配,则可以在switch语句中使用default关键字来标记要执行的语句块;见开关。
default关键字也可用于在Java注释中声明默认值。
从Java 8开始,default关键字还用于指定接口中的方法提供可选方法的默认实现。
答案 1 :(得分:2)
"默认"关键字与"默认"无关。或"包"可见性(这是你所指的)。据我所知,没有关键字来指定包级访问。
"默认"用于其他上下文,例如switch语句,默认方法等。
因此,我认为您的语法无效,或者(在JDK8中)具有不同的语义。
答案 2 :(得分:1)
默认是没有任何访问修饰符。没有用于表示修饰符的“default”关键字。因此“默认字符串名称;”无效。