黑马程序员技术交流社区
标题:
关于内部类的问题?
[打印本页]
作者:
心是你仰望的城
时间:
2014-2-26 19:19
标题:
关于内部类的问题?
请教内部类“放在外部类的方法中”和“放在成员位置”的区别?
作者:
乔青山
时间:
2014-2-26 20:06
一个是局部内部类,一个是正常的内部类(分为静态和非静态)
主要区别是局部内部类必须在方法内创建一个对象并实现其功能。另外想要调用外部方法的局部变量,必须用final修饰。
另外一个大区别是调用,不过这个和静态内部类,非静态内部类都不一样。
你这问题问的让人纠结
作者:
马富林
时间:
2014-2-26 20:37
对内部类本身其实区别不大了,在哪都可以调用外部类的成员,成员内部类可以在外部类任意位置创建对象并调用其功能,成员内部类也可以在外部其他类创建对象,而局部内部类就只能在该局部区域创建对象了。总的说就是使用范围的大小有区别,当然还有一些小的格式方法的细节有些区别。
作者:
张稳
时间:
2014-2-27 00:34
放在外部类的方法中的参数列表中,又可以称做匿名内部类,没有名字的内部类,一般只用一次就可以用着种形式,通常方面名字的参数是一个接口或需要继承的父类的对象引用,此时就可以传入实现类具体格式
方法名(new 父类名(){定义子类的类名字或者覆盖父类的方法});
当方法匿名内部类要访问外部方法的变量,变量要加final,访问外部类的成员变量时候一般的访问方式是类名.this.变量。局部内部类跟匿名类相似,在方法体用的时候要创建局部内部类的对象
外部类不可以直接生成局部内部类的实例化,这保证了内部类对外是不可见的。要想使用局部内部类时,要先创建外部类的实例,调用局部内部类所在的方法
当是成员内部类时,实例化内部类时格式是;外部类名.内部类名 实例化名 = out.new 内部类名 外部类名.内部类名 实例化对象名 = new 外部类名().new 内部类名()
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2