我发现了一些类似的帖子,但找不到明确解释这一点的答案。我已经执行了一个类的嵌套,即“内部”类存在于“外部”类中,并尝试实例化内部上课,这是我遇到的场景
在 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的情况。这个错误是什么?
这是否意味着外部类“外部”不能使用点运算符访问内部类“内部”,因为它不是静态的?如果是这样,那么为什么同样不会在 c# 中产生编译错误?