黑马程序员技术交流社区
标题:
关于内部类的小问题
[打印本页]
作者:
张雪萍
时间:
2013-3-27 10:07
标题:
关于内部类的小问题
本帖最后由 张雪萍 于 2013-3-27 19:56 编辑
class Outer
{
private static int x=3;
static class Inner
{
static void function1()
{ int y=6;
System.out.println(y);//打印结果为6
}
void function2()
{ int x=6;
System.out.println(x);//打印结果为6
}
}
}
class InnerClassDemo1
{
public static void main(String[] args)
{
new Outer.Inner().function2();
Outer.Inner.function1();
}
}
复制代码
调用内部类的两个方法具体是怎么分析,
作者:
我手心里的宝
时间:
2013-3-27 10:22
new Outer.Inner().function2();
这个方式是你先new内部类对象然后调用,内部类的方法,这个方法是非静态的
Outer.Inner.function1();
这个方式是,内部类是静态的,方法也是静态的
所以可以直接通过外部类名.内部类名.方法
作者:
高顺德
时间:
2013-3-27 10:42
因为function方法是静态方法所以直接用类名访问 因为Inner类是静态类也直接用类名访问
new Outer.Inner().function2()
等于
Outer.Inner oti=new Outer.Inner();
oti.function2() ;
Outer.Inner.function1();
我测试了下 你在eclipse中直接用new Outer.Inner().function1()也是会出运行结果的 但是这句话下面会有个黄线 表示是警告 可以编译和运行 不知道这是怎么回事
作者:
罗胜华
时间:
2013-3-27 10:48
内部类 和外部类的知识点:
内部类想要访问外部类的成员变量 :在内部类中想要访问外部类的成员时,要使用 外部类名.this.成员名
外部类不能调用内部类的成员:
因为外部类生成的时候,内部类有可能还没有创建.
如果在外部类中一定要调用内部类的成员:
那么必须先创建一个内部类对象,通过内部类对象调用内部类的成员
作者:
程宁宁
时间:
2013-3-27 11:18
简单点说,静态属性,静态方法可以用类名直接引用. 非静态方法属性,需要有实例对象去调用.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2