[英]Does static modifier change the access level of a class member in java?
[英]Member Class access modifier
很明顯,普通類的Default訪問修飾符是包私有的,而內部Local類或內部匿名是私有的,但是對我來說,當我們嘗試從外部查看Member類時,它像私有成員一樣對我來說並不明顯容器類,所以它是私有的還是包私有的?
除非另行指定,否則所有內容都具有默認訪問權限(包私有)。
(默認情況下所有內容都是公共的接口除外)
就像Tim B所說的那樣,默認情況下,所有內容都是包私有的,接口中除外。
以下代碼段對此進行了演示。
public class OuterClass {
@Override
public String toString() {
return "I am the public outer class";
}
static class StaticInnerClass {
@Override
public String toString() {
return "I am the package private inner class";
}
}
class NonStaticInnerClass {
@Override
public String toString() {
return "I am the package private non static inner class";
}
}
public static void main(String[] args) {
OuterClass oc = new OuterClass();
OuterClass.StaticInnerClass ic = new OuterClass.StaticInnerClass();
NonStaticInnerClass nsic = oc.new NonStaticInnerClass();
System.out.println(oc);
System.out.println(ic);
System.out.println(nsic);
System.out.println(new SecondClass());
}
}
class SecondClass {
@Override
public String toString() {
OuterClass oc = new OuterClass();
OuterClass.StaticInnerClass ic = new OuterClass.StaticInnerClass();
OuterClass.NonStaticInnerClass nsic = oc.new NonStaticInnerClass();
return oc.toString() + "\n" + ic.toString() + "\n" + nsic.toString();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.