你实际上可以跳过这第一部分,因为它会让人感到困惑,但我会把它放在这里,因为我想知道是否有其他人有同感。我是CS本科生,已经使用Java 3年了,我仍然觉得很难理解如何将Main功能包含在我的设计中。将它自己放在一个类中是错误的,但将它插入另一个类文件也感觉不对。我认为后者是这样的,因为它不适合同类的其他人使它不相干。例如,我不能只在我的DocumentReader对象上粘贴一个main函数。它与对象无关。另一方面,我不能只创建一个只有一个main函数的Main类,因为在面向对象的编程中,你应该根据对象来思考,有效地创建一个微型世界。对于那个围绕单个物体的微型世界来说,它只是存在而只是存在。它不是故事中的叙述者和角色,因为它同时没有任何作用。我更喜欢C的主要功能,它与所有东西分开。它使故事的叙述与彼此相互作用的人物分开。
我想知道专业人士如何将main方法与其余代码混合使用。如何使其与其他设计相适应。而且,它们通常是长还是短?
答案 0 :(得分:5)
我将main()
函数保存在一个名为my project的类中。使用命令行启动应用程序时,请键入:
java com.domain.project.ApplicationName
在我看来,逻辑上有一个简单的Launcher名称,而不是:
java com.domain.project.AClassWhichDoesntLookLikeAMainClass
或(太)经典
java com.domain.project.Launcher
但是对于这个类来说不要太费心,它可能永远不会被这样的最终用户执行。脚本或其他可执行文件将在大多数时间启动它。
另一方面,你的main()方法会变得很重,特别是如果你真的使用main args来获得更多的CLI选项。也许它值得拥有自己的班级。
答案 1 :(得分:4)
好吧,我有时想创建一个*Application
类并将其放在那里。对于DocumentReader,我有一个DocumentReaderApplication
我将放置main函数,也可以处理任何启动选项/命令行参数。如果它是GUI应用程序,*Application
类将启动主窗口。毕竟,该程序的入口点必须在某个地方,对吗?
答案 2 :(得分:4)
具有main方法的类充当入口点。因此,将所有内容放在该类中是一个好主意,该类特定于 入口点。委托其余人员。
答案 3 :(得分:3)
Hardcore OOP的人可能不喜欢这样,但我的根项目包中只有一个名为Main
的类,它包含主要方法。
我的想法是你的程序需要从某个地方开始,但把它放在另一个类中只会令人困惑。我认为Main()
是一个特殊情况,值得拥有自己的类。除了本课程中的设置信息,我没有其他任何内容。这清楚地表明这是我整个程序的起点(有时是结束点)。
答案 4 :(得分:2)
主要方法仅在您自己启动独立应用程序时使用。对于大型应用来说,世界正在逐渐远离它,因为它们变得如此之大,因此你需要进行模块化。
常见方法是针对Java EE和OSGi包的WAR / EAR。
答案 5 :(得分:2)
我从事Java Web开发工作,并且已经有多年了。
我从来没有专业地输入“public static void main”这个词。
在触发单元测试和其他本地任务的ant任务之间,然后将WAR存档部署到服务器,主方法不属于Web工作的范围。
答案 6 :(得分:0)
我将它留在Program
课程中,这将是一个人。它通常只是启动我的主窗口然后在窗口退出时退出。
答案 7 :(得分:0)
在main()方法中保留最少的代码。使用委派,因为它有助于在出现错误时本地化您的问题。如果您在Main类或main()方法中添加业务逻辑甚至UI代码,它往往会增长。这适用于面向对象的方法以及程序编程。
答案 8 :(得分:0)
我在每个其他类中都包含一个main方法,它可以有一些合理的独立行为,并且仅用于简单的测试目的。