前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java之 public class 和 class 的区别

Java之 public class 和 class 的区别

作者头像
兮动人
发布2021-06-11 20:20:33
1.6K0
发布2021-06-11 20:20:33
举报
文章被收录于专栏:兮动人的博客

文章目录

1. public class 和 class 的区别

  1. 一个java源文件当中可以定义多个class
  2. 一个java源文件当中publicclass不是必须的
  3. 一个class会定义生成一个xxx.class字节码文件
  4. 一个java源文件当中定义公开的类的话,只能有一个,并且该类名称必须和java源文件名称一致
  5. 每一个class当中都可以编写main方法,都可以设定程序的入口,向执行B.class中的main方法: java B,想执行x.class当中的main方法:java x
  6. 注意:当在命令窗口中执行java Hello,那么要求hello.class当中必须有主方法。
  • 没有主方法会出现运行阶段的错误:在类B中找不到主方法,请将主方法定义为: public static void main (string[]args)

案例:定义一个ABC.java

代码语言:javascript
复制
class A{

}

class B{

}

class C{

}
  • 使用 javac 命令编译之后生成了三个字节码,分别是A.class、B.class、C.class。执行 :javac ABC.java,就会生成三个 .class 文件
在这里插入图片描述
在这里插入图片描述
  • 通过以上的测试可以得出:一个 java 源文件中可以定义多个 class,并且在编译的时候一 个 class 会对应编译生成一个 class 字节码文件。还有,publicclass 可以没有。
  • 接下来,在 ABC.java 源代码中继续定义一个“公开的类 D”,请看下图
在这里插入图片描述
在这里插入图片描述
  • 可以看到,定义公开的类 D 之后,再次编译,编译器报错了。并且提示的错误信息是: 类 D 是公共的,应在名为 D.java 的文件中声明。换句话说在 A.java 文件中定义的公共的类的名字必须是 A,不能是其它名称。也间接说明在同一个 java 文件中公共的类只能有一个(注 意:在同一个 java 文件中类名不能重名)。
  • 通过以上的测试可以得出:如果定义 public class 的类,只能定义一个,并且要求此类名必 须和 java 源文件名保持一致。(这是规则记住就行)。
  • 接下来,在每一个类的类体当中都定义 main 方法,都写上程序的入口,看看是否可以编译和运行:
代码语言:javascript
复制
class A{
	public static void main(String[] args){
		System.out.println("A...");
	}
}

class B{
	public static void main(String[] args){
		System.out.println("B...");
	}
}

class C{
	public static void main(String[] args){
		System.out.println("C...");
	}
}
public class ABC{
	public static void main(String[] args){
		System.out.println("ABC...");
	}
}
  • javac ABC.java
在这里插入图片描述
在这里插入图片描述
  • 随便从一个类中进入入口函数:java A 、java B
在这里插入图片描述
在这里插入图片描述
  • 可以看到,在每一个 class 中都可以编写 main 方法,想让程序从哪个入口进去执行则加载该类即可

2. 总结:

  • 通过以上的测试可以得出:任何一个 class 中都可以设定程序入口,也就是说任何一个 class 中都可以写 main 方法(主方法),想从哪个入口进去执行,则让类加载器先加载对应的类即 可,例如:想让 A类中的 main 方法执行,则执行:java A,想让 B 类中的 main 方法执行,则 执行:java B。但实际上,对于一个完整的独立的应用来说,只需要提供一个入口,也就是说 只需要定义一个 main 方法即可。
  • 还有,在实际的开发中,虽然一个 java 源文件可以定义多个 class,实际上这是不规范的, 比较规范的写法是一个 java 源文件中只定义一个 class
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. public class 和 class 的区别
  • 2. 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档