黑马程序员技术交流社区
标题:
关于内部类的问题
[打印本页]
作者:
松毛
时间:
2013-11-5 07:16
标题:
关于内部类的问题
本帖最后由 松毛 于 2013-11-5 11:04 编辑
请问一下内部类如何访问外部类中的方法?他在主函数中是如何实现访问的?能否举一个例子。小弟万分感激
作者:
☆╰學不会☆╮
时间:
2013-11-5 08:27
本帖最后由 ☆╰學不会☆╮ 于 2013-11-5 08:29 编辑
存在类中的类叫做内部类,它所在的类叫外部类。
内部类的访问规则:
1 内部类可以直接访问它所在外部类的成员属性和成员方法,也包括私有的。
2 外部类要访问内部类,必须建立内部类的对象 才能引用其内部类中的成员方法和属性。
在主函数main方法中 如果想要访问内部类也要建立内部类的对象。
class WaiBu{
private String name="zhangsan";
private int x;
class NeiBu{ //定义的内部类
public void show(){
System.out.println("Name="+name); //访问外部类所在的属性 默认执行的是WaiBu.this.name;
}
}
public static void main(String[] args){
// 要想访问 内部类中的函数 就要新建内部类的对象
WaiBu.NeiBu aa=newWaiBu().new NeiBu();
aa.show();
//这样通过内部类的对象就能引用到内部类中的show()方法 因为输出语句中的name属性是外部类的 因为内部类可以访问到外部类所以输出结果为 Name="zhangsan"
}
}
作者:
松毛
时间:
2013-11-5 08:36
☆╰學不会☆╮ 发表于 2013-11-5 08:27
存在类中的类叫做内部类,它所在的类叫外部类。
内部类的访问规则:
1 内部类可以直接访问它所在外部类的成 ...
谢谢你的答复!!!
但是这个name属于外部类中的变量吧?怎么样用内部类访问外部类中的方法呢?
作者:
胡志翔
时间:
2013-11-5 08:42
内部类访问特点:
1、内部类可以直接访问外部类中的成员,因为内部类持有外部类的引用,格式为:外部类名.this
2、外部类要想访问内部类的成员,必须创建对象访问。
内部类的访问格式:
1、当内部类定义在外部类的成员位置,而且非私有,则可以在其他外部类中直接建立内部类对象
格式:外部类名.内部类名 变量名 = new 外部类对象.内部类对象
如:Outer.Inner in = new Outer().new Inner()
2、当内部类在外部类成员位置,且被static修饰时
①外部其他类可直接访问静态内部类的非静态成员
格式:new 外部类名.内部类名().内部类成员
如:new Outer.Inner().function();
②外部其他类可直接访问静态内部类的静态成员
格式:new 外部类名.内部类名.内部类成员
如:new Outer.Inner.function();
什么使用时候内部类呢?
假如有A类和B类,A类想直接访问B类的成员,B类访问A类成员的时候,需要创建A类对象进行访问,这个时候,就可以把A类定义为B类的内部类。
作者:
黄炳期
时间:
2013-11-5 08:46
如果问题已经解决,请及时修改主题为“提问结束”。
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2