关于C#:
class outside
{
public class inside
{
public void print()
{
System.Console.WriteLine("I am inside");
}
}
}
class Program
{
public static void Main(string[] args)
{
/* here i am trying to instantiate the inner class 'inside' */
outside.inside obj = new outside.inside();
obj.print();
Console.ReadKey();
}
}
输出:
我在里面。 所以,上面的工作很好... 但是,在Java中:
class outside
{
public class inside
{
public void print()
{
System.out.println("I am inside");
}
}
}
class Demo
{
public static void main(String[] args)
{
/* here i am trying to instantiate the class 'inside' */
outside.inside obj=new outside.inside();
obj.print();
}
}
输出:
Demo.java:16: 错误: 需要包含outside.inside的封闭实例...
这是Java中的情况。这个错误是什么?
这是否意味着外部类'outside'不能使用点运算符访问内部类'inside',因为它不是静态的?如果是这样,那么为什么在c#中同样的操作不会生成编译错误?