class TD
{
int y = 6;
static class Inner //内部类,静态的
{
static int y = 3;
void show()
{
System.out.println(y);
}
}
}
class TC
{
public static void main(String[] args)
{
TD.Inner ti = new TD().new Inner();//这样建立对象是错的,why?
//怎么建立一个新对象??
ti.show();
}
}
静态内部类是无法创建对象的,使用里面的功能可以直接是用类名调用,其实和静态方法的定义差不多,静态类就是当程序一旦被执行,静态类直接被放入方法区,可以直接通过类名进行调用,而不需要建立类的对象。。
更改后代码如下:
class TD
{
int y = 6;
static class Inner //内部类,静态的
{
static int y = 3;
static void show()//先将show方法静态,因为静态不能访问非静态。
{
System.out.println(y);
}
}
}
class TC
{
public static void main(String[] args)
{
TD.Inner.show();//然后使用类名调用方法
}
}
静态内部类就具备static的特性,也就是说静态内部类中的成员必须都是静态的,都是静态的还有必要创建对象吗?
所以可以这样访问new TD.Inner().show();
class TC
{
public static void main(String[] args)
{
//TD.Inner ti = new TD().new Inner();//这样建立对象是错的,why?
new TD.Inner().show(); //怎么建立一个新对象??
//ti.show();
}
}希望能帮到你