黑马程序员技术交流社区
标题:
有关Java内部类的问题
[打印本页]
作者:
任亚俊
时间:
2013-8-7 15:38
标题:
有关Java内部类的问题
本帖最后由 任亚俊 于 2013-8-7 19:33 编辑
public class Test7 {
public static void main(String[] args) {
A a=new A();
a.outerMethod();
}
}
class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
System.out.println("所属外部类全局变量x="+A.this.x);
System.out.println("内部类自身全局变量x="+this.x);
System.out.println("内部类自身局部变量x="+x);
}
}
void outerMethod(){
B b=new B();
b.func();
}
}
复制代码
在上述代码中,在Test7这个类中想要访问类A的内部类B,除了通过A提高的方法外,可不可以直接访问内部类B的方法func(),如果可以怎样访问呢?
作者:
昨夜星风
时间:
2013-8-7 16:40
当内部类定义在外部类的成员位置上 而且非私有,可以在外部其他类中 可以直接建立内部类对象
格式:外部类名.内部类.变量名=外部类对象.内部类对象;
所以 在外部其他类中,可以理解这样访问非静态成员
public class Test7 {
public static void main(String[] args) {
new A().B().func();
}
}
个人理解是这样访问的 ,希望共同进步
作者:
影响力147753321
时间:
2013-8-7 16:43
内部类B属于成员内部类,因为它相当于外部类的成员,只有通过外部类对象来访问。就算是提供方法也是外部类方法。其它外围类访问它。都要先建立外部类对象。内部类放在外部类内部很好得到隐藏。使外围类不能轻易访问到。
作者:
单凯
时间:
2013-8-7 17:00
public static void main(String[] args) {
new A().new B().func();
}
创建内部类对象,调用自己的方法
作者:
吴光新
时间:
2013-8-7 18:12
楼上正解
给你推荐内部类的访问规则:http://blog.csdn.net/jiewin/article/details/9327929
作者:
黑马龙子
时间:
2013-8-7 18:30
想要访问A类中的成员内部类B,那么需要通过外部类A的对象来进行访问,这时需要提供一个外部的方法。在外部其他类中建立一个内部类对象,进行调用。还可以类的局部位置定义一个接口。然后进行实现,调用方法。希望对你有所帮助!
public class Text7 {
public static void main(String[] args) {
new A().new B().func();
}
}
class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
System.out.println("所属外部类全局变量x="+A.this.x);
System.out.println("内部类自身全局变量x="+this.x);
System.out.println("内部类自身局部变量x="+x);
}
}
void outerMethod(){
B b=new B();
b.func();
}
复制代码
作者:
布易般
时间:
2013-8-9 11:48
在main函数中:
可以直接访问内部类B的方法,前提:外部类需要创建内部类的对象访问内部类中的成员。
A.B inner = (new A()).new B();
------ --------------- -----
内部类类型 外部类对象 内部类构造函数
//然后就可以通过内部类对象访问了
inner.func();
这样就ok!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2