为什么程序主方法是静态的?
Why is a program main method static?
我一直认为(假设)Main
方法是静态的,因为您不能拥有它的多个实例(如果错了请纠正我)。 Main
方法是程序的起点,因此您只能有一个。
所以如果我有
class Program
{
static void Main(String[] args)
{ // something
}
}
class OtherClass
{
void Test()
{
Program p1 = new Program();
Program p2 = new Program();
Program p3 = new Program();
Program p4 = new Program();
}
}
Program 的所有实例将共享相同的 Main
方法,因此始终有一个起点。
我说的对吗?因为我只是出于好奇用谷歌搜索了这个,并在互联网上找到了不同的答案。
这个解释对于静态的主要方法是否也正确?
如果入口点方法不是static
,则需要有人先创建一个对象。那么问题是:创建一个 class?
的对象
I always thought (assumed) that the Main method was static because you cannot have multiple instances of it
你不能有方法的实例。方法位于 DLL 的 Code
部分,不会复制到堆中。同一方法中只能有多个线程运行。
The Main method is the start point of your program and thus you can have only one.
和以前一样:如果我们考虑签名,只有一种方法,无论是否是静态的,都是独立的,因为它们没有被实例化。
all instances of Program will share the same Main method ...
取决于您对 "share" 这个词的理解。所有对象都会有方法,是的。
... and so there will always be one start point.
背后的推理是错误的。您有很多 Program
的实例,但这与方法的数量无关。
我一直认为(假设)Main
方法是静态的,因为您不能拥有它的多个实例(如果错了请纠正我)。 Main
方法是程序的起点,因此您只能有一个。
所以如果我有
class Program
{
static void Main(String[] args)
{ // something
}
}
class OtherClass
{
void Test()
{
Program p1 = new Program();
Program p2 = new Program();
Program p3 = new Program();
Program p4 = new Program();
}
}
Program 的所有实例将共享相同的 Main
方法,因此始终有一个起点。
我说的对吗?因为我只是出于好奇用谷歌搜索了这个,并在互联网上找到了不同的答案。
这个解释对于静态的主要方法是否也正确?
如果入口点方法不是static
,则需要有人先创建一个对象。那么问题是:创建一个 class?
I always thought (assumed) that the Main method was static because you cannot have multiple instances of it
你不能有方法的实例。方法位于 DLL 的 Code
部分,不会复制到堆中。同一方法中只能有多个线程运行。
The Main method is the start point of your program and thus you can have only one.
和以前一样:如果我们考虑签名,只有一种方法,无论是否是静态的,都是独立的,因为它们没有被实例化。
all instances of Program will share the same Main method ...
取决于您对 "share" 这个词的理解。所有对象都会有方法,是的。
... and so there will always be one start point.
背后的推理是错误的。您有很多 Program
的实例,但这与方法的数量无关。