public class A {
private String str;
public void setString(String pStr){
str = pStr;
}
private class B {
public String getStr(){
return str;
}
}
}
a)A级和B级之间的关系是什么? b)为什么B类可以访问A(str)的私有领域?
是派生还是其他?
答案 0 :(得分:0)
B类是私有的,所以它只能在类中创建。这意味着A类总是以某种形式存在。当你使B类静态时,你将无法访问A类的变量,因为它是静态的。
答案 1 :(得分:0)
它只是一个嵌套类,即类中的类。它与你定义字段和传递值类似,比如说private String mystr = new String(str);
所以在这里你可以访问私有字段str并将它传递给String。
类似地,您在外部类中定义了非静态类,它将访问外部类中定义的private / protected / public字段。
如果说它扩展了另一个类,则将类称为派生类。类似的东西:
public class MyParentClass {}
public class MySubClass extends MyParentClass {}
答案 2 :(得分:0)
回答: a)如你所示,彼此之间没有任何关系 b)B类无法访问它,因为它在A上是私有的,并且在两者之间显示的代码中没有任何关系(读继承)。即使有,私人也不是继承的
查看这些链接以更好地了解继承和私有属性:
答案 3 :(得分:0)
B类是A类的成员。当一个类有一个私有成员时,同一个类的其他成员可以访问它。同样,在您的情况下,B类可以访问A类的私有成员。这不是任何形式的关系。它只是课堂上的课程。