java中类的main方法总结

2023-05-16

一、java中每个类都需要有main方法吗?

每个类可以有也可以没有main方法,

甚至所有类里可以都没有main方法。如果你想从某个类做为入口开始运行整个程序。那么就把他设成 public ,之后再里面写个main方法作为入口。

每个项目都要有一个主类,这个主类中必须得有main,用于程序的入口.在程序测试时,一般每个类中都有一个main,用于方便测试人员对类成员进行测试

不是,可有可无。但是你要执行的类中必须有,因为main函数是提供程序执行的进入口。比如你 java Test 那麼Test类中必须有个main函数。也可拿来做测试某个类用。如你要测试一下Test类内的方法(这时的Test类可能不是主类,假设这时此类只提供给主类一些功能),那麼你可以在Test类中加入一个main方法,调用Test类中的成员变量和方法,查看结果,达到测试的效果。

二、一个java文件中可包含多个main方法

一个java文件中可包含多个main方法

java中的main方法是java应用程序的入口,java程序在运行时,首先调用执行main方法。但并不是说java中只能有一个main方法,不同类中都可以包含main方法。但是当JVM进行编译时,只会会选择接口类里面的main方法,作为编译的入口。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JufYzJib-1640105308869)(https://raw.githubusercontent.com/xkyvvv/blogpic2/main/img/image-20211222001147510.png)]

一个Java文件至多包含一个公共类

编写一个java源文件时,该源文件又称为编译单元。一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为【公共类名.java】。

当同一个源文件中包含两个public class时,JVM会立马报出错误

但java文件中可以不包含任何public公共类,但编译时JVM仍将与源文件名相同的类作为默认的接口。即便其他的类提供了main方法,JVM仍然无法编译。

补充:如果包含main函数的类,是默认类,同样可以编译。

image-20211222001304072

当且仅当默认为接口的类中包含main方法时才能进行编译。

补充:

上面图片中的class前面没有修饰符,就是默认default的意思(不用把default写出来)。
意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多。

default(包访问权限):

如果类里的一个成员(包括成员变量、方法和构造器等)或者一个外部类不使用任何访问控制符修饰,就称它是包访问权限,default访问控制的成员或外部类可以被相同包下的其他类访问,但是在其他包中不能用import导入。

三、java中main为什么在类名中?

为什么要声明一个main方法?我知道main方法是类的起点。但是为什么我们只应该把它声明为public static void main(String args[])?

为什么我们不能宣布它为public static void test(String args[])?main是关键字吗?JVM如何知道它将是起点?

应用程序必须从某个地方开始,是吗?从《时代的黎明》(1972?)EDCOX1的0个字已经走了,为什么要用Java来改变它呢?

@当然,这个问题的措辞不清楚,我会修改的。问题似乎在于为什么该方法被命名为main,而不是为什么它需要是静态的。

这不是关键字。“JVM如何知道这是起点?”>通过读取其名称"main"

@chrylis the op询问为什么名字main,这似乎在我上面提到的问题中得到了回答。

@桑巴,对不起,第二个答案漏了。

§The JVM has to know some where the starting point of your program is.The way the designers chose to mark that is to call the entry method EDOCX1 original 0,because the same name is used for that purpose in C(which most programmers were familiar with the time)and it makes sense.他们对自己的名字没有特殊的魔法,他们只是有选择,而且这是一个实际的选择。§

§When a program begins,it has to begin from some where…好吧,这是EDOCX1的音标0§§为什么停?§

§当JVM呼吁主要的方法,有非目标的存在对于阶级的呼唤。So it has to have static method to allow this from class.§

§Why Public?§

The main method is called by the JVM to run the method which is outside the scope of project.

§Why Void?§

Think about it,once the main method finishes,it doesn’t mean that the program finished.如果空间是一个新的威胁,它可能是这些威胁仍然在运行。

据我所知,问题是关于main的名字,而不是签名的其余部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中类的main方法总结 的相关文章

  • Java中String的字符编码是什么?

    我实际上对 Java 中字符串的编码感到困惑 我有一些问题 如果您知道答案 请帮助我 1 Java字符串在内存中的本机编码是什么 当我写作时String a Hello 将以哪种格式存储 由于 Java 是独立于机器的 我认为系统不会进行编
  • 从 Hibernate 生成 SQL 脚本

    我正在为我的 Java Swing 应用程序使用 Hibernate 4 3 5 Final 并且我做了很多工作UDPATE INSERT and DELETE与它 在 HQL 中或与Criteria 现在 我想做的是导出对数据库所做的所有
  • 如何用泛型返回类型推断方法的具体返回类型?

    给出以下接口 interface Random extends java util function Supplier
  • 如何设置评分栏的星星颜色?

    如何设置评分栏的星星颜色 我想要黄色星星 最简单的方法 android progressTint color color 光滑有光泽
  • 如何在 Jboss 7.1 中配置简单身份验证

    我正在从事由以下人员编写的项目纯jsps 脚本 不使用任何框架 jboss版本 jboss as 7 1 0 Final 我现在正在尝试在其上添加简单的身份验证 因此 当用户尝试浏览 jsp 时 比如说 http localhost myC
  • 关于Java中trim()方法的查询

    我之前提出了一个问题 但遭到了严厉的批评 所以我在这里再次提出 更简单 并重新措辞以吸引那些可能担心我之前提出问题的方式的人 背景 我正在解析一些 HTML 以获取信息 我将所有内容隔离在一系列行中 但我希望抓取的内容以及后面的一堆空格 为
  • Java程序在没有定义main方法的情况下如何运行?

    我正在浏览一些 Java 源代码并注意到main方法未定义 Java如何编译源码却无从下手 The main方法仅在 Java 虚拟机执行代码时使用 没有 a 则无法执行代码main方法 但仍然可以编译 编译代码时 通常在命令行上指定一组文
  • Java心跳设计

    我需要在我的 Java 项目上实现一个心跳系统 3 5 个客户端和 1 个服务器 但我有一些问题 1 客户端需要有 2 个套接字吗 1 用于心跳 1 用于接收我的软件的正常消息 2 我看到在特定情况下 当客户端滞后时 客户端不会收到消息 如
  • Java - Servlet 的默认 contentType

    在servlet中 通常我们会指定一个contentType 然后我们就可以打印出html代码了 response setContentType text html PrintWriter out response getWriter 如果
  • Java俄罗斯方块旋转

    我知道这个问题已经被问了很多 但我想知道如何旋转俄罗斯方块 我已经做了一个又长又糟糕的解决方案 大约 170 行代码 但应该有更简单的方法来做到这一点 我的俄罗斯方块由 4 个块组成 它们都知道它们在矩阵中的位置 行和列 Matrix本身是
  • 如何将跨源资源共享与 Spring MVC 4.0.0 RESTful Webservice 集成

    我有一个简单的 Web 服务返回JSON data The 用户等级 com bargadss SpringService Domain 是个POJO类包含 用户 ID 名字 姓氏 电子邮件 The 用户服务类 com bargadss S
  • Selenium 2:中断页面加载

    我在使用 FirefoxDriver 使用 Selenium 2 0b3 Java API 单击按钮时遇到问题 单击该按钮会将表单发送到网络服务器 然后浏览器会因表单提交而进入新页面 当使用 element click 单击某个元素时 se
  • 如果Jetty的密钥库中有多个证书,它如何选择?

    我们的系统中有一些代码用于自动将自签名证书生成到密钥库中 然后由 Jetty 使用 如果给定主机的密钥已经存在 那么什么也不会发生 但如果它不存在 我们会生成一个新密钥 如下所示 public void generateKey String
  • 当从搜索表单动态构建 WHERE 子句时,如何防止 SQL 注入?

    我知道在 Java 中保护 SQL 查询免受 SQL 注入的唯一真正正确的方法是使用准备好的语句 然而 这样的语句要求基本结构 选择的属性 连接的表 WHERE条件的结构 不会改变 我这里有一个 JSP 应用程序 其中包含一个带有大约十几个
  • 尝试将过滤器添加到 Grizzly+Jersey 应用程序时出现问题

    我有这个服务器初始化类 package magic app main import org glassfish grizzly http server HttpServer import org glassfish jersey grizz
  • int 到 long 赋值

    我一直在尝试这个 int 和 long 转换 我尝试分配一个int变量为along多变的 代码如下 public static void main String args int i 1024 long j i long k i i i i
  • 策略模式的现实示例

    我一直在读关于OCP原理 http en wikipedia org wiki Open closed principle以及如何使用策略模式来实现这一目标 我打算尝试向几个人解释这一点 但我能想到的唯一例子是根据 订单 的状态使用不同的验
  • GAE、JPA、XG 事务、实体组过多异常

    我知道 GAE 上的 XG 交易有 5 个实体组的限制 但我认为我在一项交易中仅使用 3 个组 商品 类别 商品类别 但仍然遇到此异常 引起原因 java lang IllegalArgumentException 在单个事务中对太多实体组
  • Activity 在 Android 上创建两次

    首先 我是 Android 开发新手 所以请耐心等待 我将从用户界面开始 我有一个按钮 一旦您点击它 就会启动一个活动以获取结果 public class GUIActivity extends Activity Override publ
  • 扫描图像到可读文本

    我想知道是否有一种方法可以通过编写代码来将带有文本的扫描图像转换为可读文本 那可能吗 OCRTools http www ocrtools com是我用于 net 的 对于Java 我用过Aspire http asprise com pr

随机推荐

  • 如何使用Markdown内嵌HTML来更改字体颜色

    Markdown 通过简单标记语法 xff0c 使普通文本内容具有一定格式 但它本身不支持修改字体 字号与颜色等功能的 但其支持内嵌HTML xff0c 因此可以实现很多好玩的功能 一 更改字体 大小 颜色 span class token
  • 【程序员读论文】题外篇:怎么读论文

    文章目录 1 如何高效读论文 xff1f 痛苦选择顺序笔记小结讨论 2 如何有针对地高效地阅读一篇学术论文 xff1f 3 一文教你如何快速高效阅读Paper xff08 硕士生版 xff09 前言Paper从哪来Paper怎么读Paper
  • 【程序员读论文】推荐一款OCR软件,识别PDF论文上的文字

    在我们读论文过程中 xff0c 我们会有将PDF论文中的一些文字复制下来的需求 xff0c 但因为PDF的特殊性 xff0c 要么复制不出来 xff0c 要么复制的有问题 通过OCR软件 xff0c 我们可以通过现在的图形文字识别技术 xf
  • uC/OS-III 的特点

    1 其中最有用的功能应该是时间片轮转法 xff08 roundrobin 这个是 uC OS II 中不支持的 xff0c 但是现在已经是 uC OS III 的一个功能了 2 uC OS III 被设计用于 32 位处理器 xff0c 但
  • ORBSLAM2 文章翻译

    ORBSLAM2 一种适用于单目 双目和RGB D相机的开源slam系统 摘要 本文提出了ORB SLAM2 xff0c 一种适用于单目 双目和RGB D相机的slam系统 xff0c 包含地图重用 xff0c 回环检测 xff0c 重定位
  • 【程序员读论文】LeCun, Y., Bengio, Y. & Hinton, G. Deep learning. *Nature* **521,** 436–444 (2015).

    文章目录 一 先看题目 摘要 结论二 文章主体三 总结 今天要读的论文是深度学习的里程碑之作 xff0c 集齐了三位在深度学习领域举足轻重的人物 论文名称 xff1a LeCun Y Bengio Y amp Hinton G Deep l
  • HTML入门教程(非常详细)

    转载于我最喜欢的C语言中文网 xff1a http c biancheng net view 9395 html 文章目录 网站到底是什么 xff1f 1 什么是网页 xff1f 2 什么是网站 xff1f 1 网站服务器 xff08 Se
  • JSON教程(非常详细)

    之前写过有关C语言JSON库 xff1a C语言开源库 在Clion上使用开源库cJSON JSON和XML的对比 xff1a JSON vs XML xff0c 为什么JSON更好 xff1f 下面就好好来了解一下JSON 文章目录 JS
  • 理清gcc、libc、glibc、libc++、libstdc++的关系

    转载一篇好文 xff1a https www jianshu com p a3c983edabd1 当你在Linux下写C C 43 43 代码的时候 xff0c 是不是会遇到许多编译链接的问题 xff1f 时不时报个glibc gcc x
  • Linux中C语言标准库glibc源码下载

    在这篇文章理清gcc libc glibc libc 43 43 libstdc 43 43 的关系 xff0c 我们大概理解了libc xff0c glibc之间的一些关系 下面我们就开了解一些Linux中C语言标准库glibc源码 在这
  • 记录、总结、复盘的重要性和方法(另有周报、月报、年度总结撰写方法)

    文章目录 一 记录1 记录的分类2 学习记录3 工作记录定义分类作用提醒作用跟踪作用证明作用 写好日志时间维度内容维度感想维度 4 生活记录 二 总结和复盘1 总结2 复盘什么叫做复盘 xff1f 什么时候复盘比较合适 xff1f 怎样进行
  • PPT画图文章总结

    一图抵千言 xff0c 在平常的PPT汇报中 xff0c 一张好的图片可以让我们的展示更加清晰 xff0c 也让听得人更快的了解我们的内容 要想起之前师兄发了文章 xff0c 需要提供一个封面示意图 xff0c 当时好像是花钱请别人做的 x
  • 传统学科怎么和深度学习领域结合

    这篇博客 程序员读论文 LeCun Y Bengio Y amp Hinton G Deep learning Nature 521 436 444 2015 中的论文提到深度学习将在很多行业上有广阔的前景 最近看到毕导的公众号发文菜鸡程序
  • 现在快2022年了,c++为什么还要实现(.cpp)和声明(.h)分开?像 Java 或 C# 都不需要声明头文件,C++ 委员会为什么不解决这个问题?

    链接 xff1a https www zhihu com question 506962663 answer 2278836594 因为 C 43 43 牵扯面更广 xff0c 改起来更麻烦 很多语言其实都有一个事实上的实现标准 xff0c
  • Java程序设计基础

    文章目录 Java标识符和关键字标识符关键字 Java注释 xff1a 单行 多行和文档注释1 xff09 单行注释2 xff09 多行注释3 xff09 文档注释 Javadoc xff08 文档注释 xff09 详解Javadoc标签J
  • 几本对于笔试和面试有用的书(干货~)

    黑客帝国 jpg 这儿放几本对程序员笔试和面试有益的书籍o o the power of coding coder jpg 4本408核心书籍 xff1a 数据结构计算机操作系统计算机网络计算机组成原理 面试宝典 xff1a 程序员面试宝典
  • Java类和对象

    文章目录 本章学习要点 Java面向对象 xff1a 对象的概念及面向对象的三个基本特征对象的概念面向对象的三大核心特性继承性封装性多态性 Java认识类和对象Java类的定义及定义类时可用的关键字例 1 Java类的属性 xff1a 成员
  • Java流程控制语句

    文章目录 Java语句 xff1a Java空语句 复合语句和表达式语句语句编写方式空语句表达式语句复合语句例 1 Java if else分支结构精讲if 结构例 1例 2例 3 if else 结构例 4 多条件 if else if
  • Java数组:针对数组(Array)的各种操作

    文章目录 本章学习要点 Java数组简介 xff1a 数组是什么 xff1f Java一维数组的定义 赋值和初始化创建一维数组分配空间例 1 初始化一维数组1 xff09 使用 new 指定数组大小后进行初始化例 22 xff09 使用 n
  • java中类的main方法总结

    一 java中每个类都需要有main方法吗 xff1f 每个类可以有也可以没有main方法 xff0c 甚至所有类里可以都没有main方法 如果你想从某个类做为入口开始运行整个程序 那么就把他设成 public xff0c 之后再里面写个m