可用通过内部类的方法来访问 private int p; int getP(){ return p; } 就可以得到内部类的p
不通过方法,也不是内部类访问外部类,是这样: 为什么? class A { class B { private B() { System.out.println("default constructor"); } private void method() { System.out.println("method"); } } A() { A.B b = new B(); b.method(); } } public class Test { public static void main(String[] args) { new A(); } }
A.B b = new B(); 调用的是内部类,所以b可以调用内部类B的private方法,new A()后直接用了B类的对象进行调用method方法,其实不存在外部类调用内部类的方法吧。
private私有类型,声明的方法和数据只能在本类中进行访问. 类的内部当然可以访问了,有什么疑问呢?A() { A.B b = new B(); b.method(); } 这段代码不是在类B的内部 是在类B的外部类A的内部
public class Test { public static class TypeDescriptor { private TypeDescriptor() { System.out.println("aaaaaaaaaaaa"); } private void fff(){ System.out.println("bbbbbbbbbbbb"); } } public static final TypeDescriptor BOOLEAN = new TypeDescriptor(); public static void main(String[] args){ BOOLEAN.fff(); } } 解释一下这个吧
private int p;
int getP(){
return p;
}
就可以得到内部类的p
class A {
class B {
private B() {
System.out.println("default constructor");
} private void method() {
System.out.println("method");
}
} A() {
A.B b = new B();
b.method();
}
}
public class Test {
public static void main(String[] args) {
new A();
}
}
调用的是内部类,所以b可以调用内部类B的private方法,new A()后直接用了B类的对象进行调用method方法,其实不存在外部类调用内部类的方法吧。
类的内部当然可以访问了,有什么疑问呢?
类的内部当然可以访问了,有什么疑问呢?A() {
A.B b = new B();
b.method();
}
这段代码不是在类B的内部 是在类B的外部类A的内部
public static class TypeDescriptor {
private TypeDescriptor() {
System.out.println("aaaaaaaaaaaa");
}
private void fff(){
System.out.println("bbbbbbbbbbbb");
}
}
public static final TypeDescriptor BOOLEAN = new TypeDescriptor();
public static void main(String[] args){
BOOLEAN.fff();
}
}
解释一下这个吧