Java中main方法必须写在public类中吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中main方法必须写在public类中吗相关的知识,希望对你有一定的参考价值。

参考技术A 这是一个自圆其说的约定。

面向对象中,”状态“是和对象实例绑定的,也就是说没有一个实例,就谈不上说它的状态,就好像一个人还不存在我们就没法给它取个名字也不能和它有交流一样。而 static (静态)则表示”没有状态“,因此在 JVM 刚启动时这个世界中还没有任何对象实例时我们就只能先用 static 方法来创建第一个对象实例,就把它理解成接待员,它引导我们创建各个对象实例并建立彼此之间的关系。然后我们开始有了我们的对象图,JVM 世界就有了一个生态系统。

因此我们的 main 方法必须是 static,同时它是被外界调用的(不是我们的程序本身),因此它又必须是 public。本回答被提问者和网友采纳
参考技术B

貌似不用。测试了下,没报错。

参考技术C 对啊 。。。。。。。。。。。。。 参考技术D

测试了下只有在与文件同名的情况下可以在不是public修饰的类中运行main方法

在java中,有main方法的类叫啥类,没有main方法的类叫啥类

有main方法的类一定是用public修饰的,程序的入口就是此类的main方法,没有main方法的类修饰符没有限制,除了这个没有其他的不同点,在你这个程度上没有类的叫发的区别;应该是其他的程度上,比如说内部类,静态内部类,匿名内部类等等,他们的比较不是在有没有main上进行的 参考技术A java里面没有这个说法,而且,在很多程序里是没有main方法的,比如说applet,比如说andorid。要用面向对象的思想去理解类,而不是把其他语言的那套照搬过来,你应该把java编程思想好好看看,不然java永远学不好。追问

多谢你为这个问题打字了,不过你所说的什么”java里面没这个说法“实在不敢苟同,我只不过突然想起这个知识点,忘了具体是什么了。

追答

你只能说有main方法的类叫主类,而这根本不是一个严格定义的名称,也根本没有任何经典java书籍里有定义。所以本来就没有多大意义,我不知道你是从哪看到的这个知识点,不要被国内一些乱七八糟的教材误导了,很多时候这种说法都是一些从其他语言转过来的作者把其他语言的一些说话套在java里而已,能理解,但根本不用去纠缠于他叫什么,再申明一次,java里没这个说法,除非你把这个知识点找到,发给我看,我也可以学习一下,谢谢。

追问

你好,为此我刚查了下我们学习的教材——《java程序教程》(第六版),含main方法的类可以叫做驱动类,我并不是说死扣定义,我也和你一样不认为一些教材 的说法一定准确,而是要写一篇论文,需要一个说法,。谢谢你的回答,也谢谢你的认知。

本回答被提问者采纳
参考技术B 纯面向对象语言的通用标准,c#也是如此,不允许在类外定义变量、方法、事件等,强调一切皆是对象的思想,main虽然是主函数,也必须定义在某个类里面。 参考技术C main()方法只是程序的入口,类的叫法跟有没有main方法没关系吧。追问

我的意思是,有一种叫驱动类,和被驱动类,我想搞清哪一种是哪一种

以上是关于Java中main方法必须写在public类中吗的主要内容,如果未能解决你的问题,请参考以下文章

Java程序的main()方法必须都写在类里面?

Java中的main和constructor可以放在一个类中吗

java中main函数的位置必须在public class类中么? (eclipse,editplus环境下)

(转)错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx

(转)错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx

课程作业02