黑马程序员技术交流社区
标题:
问个内部类的问题
[打印本页]
作者:
流浪的风
时间:
2013-9-24 11:41
标题:
问个内部类的问题
public class Outer {
void method(){
class Inner{
}
}
}
class Test{
public static void main(String [] args){
//在这里怎么创建Inner内部类的对象?是直接创建,不是通过提供的方法间接创建;
}
}
作者:
jìng╮煜
时间:
2013-9-24 12:09
比如,B是A的内部类,你要在C上创建B那么就可以使用
A a = new A();
A.B b =a.new B();
就像这样创建,需要一个引用.
作者:
code_geass
时间:
2013-9-24 12:43
public class Outer {
void method(){
class Inner{
void show(){}
}
Inner in=new Inner();
in.show();
}
}
class Test{
public static void main(String [] args){
/*无法直接创建,因为内部类在局部。外界无法获得其引用。如果想调用内部类的方法,
只能在局部创建引用,然后调用*/
new Outer().method();
}
}
复制代码
作者:
咕咕猫
时间:
2013-9-24 13:05
<p>public class Outer {
class Inner{
void show(){}
}
}
class Test{
public static void main(String [] args){
Outer.Inner oi = new Outer().new Inner()//成员内部类建立对象
}
}</p><p> </p><p>class Outer
{
int x= 3;
void method(final int a)//final修饰才能被下方访问
{
final int y=4;//必须为最终类型final修饰局部类才能访问它
class Inner//局部内部类 不能私有不能静态 非静态没对象不运行。
{
void function()//不能静态修饰
{
System.out.println(Outer.this.x);
System.out.println(y);//上边y必须为最终类final修饰型局部类才能访问它
System.out.println(a);//final修饰才能被此访问
}
}
new Inner().function();//要想运行上方局部内部类必须建立对象调用其才行
}
}</p><p>
class InnerClassDome3
{
public static void main(String[]args)
{
new Outer().method();//匿名对象调用功能
Outer out = new Outer();
out.method(7);//都能运行ok
out.method(8);//都能运行ok
}
}</p>
复制代码
你所写的内部类为局部内部类,详细可以看看毕老师的java基础视频:09(内部类访问规则)
作者:
369833818
时间:
2013-9-24 13:30
eclipse中new错了会报错的!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2