Java之 public class 和 class 的区别
文章目录
- 1. public class 和 class 的区别
- 2. 总结:
1. public class 和 class 的区别
- 一个java源文件当中可以定义多个
class
- 一个java源文件当中
public
的class
不是必须的 - 一个
class
会定义生成一个xxx.class
字节码文件 - 一个java源文件当中定义公开的类的话,只能有一个,并且该类名称必须和
java
源文件名称一致 - 每一个
class
当中都可以编写main
方法,都可以设定程序的入口,向执行B.class
中的main
方法:java B
,想执行x.class
当中的main方法:java x
- 注意:当在命令窗口中执行
java Hello
,那么要求hello.class
当中必须有主方法。
- 没有主方法会出现运行阶段的错误:在类B中找不到主方法,请将主方法定义为:
public static void main (string[]args)
案例:定义一个ABC.java
class A{}class B{}class C{}
- 使用
javac
命令编译之后生成了三个字节码,分别是A.class、B.class、C.class
。执行 :javac ABC.java
,就会生成三个.class
文件
- 通过以上的测试可以得出:一个
java
源文件中可以定义多个class
,并且在编译的时候一
个class
会对应编译生成一个class
字节码文件。还有,public
的class
可以没有。 - 接下来,在
ABC.java
源代码中继续定义一个“公开的类 D
”,请看下图
- 可以看到,定义公开的
类 D
之后,再次编译,编译器报错了。并且提示的错误信息是:
类 D 是公共的,应在名为D.java
的文件中声明。换句话说在A.java
文件中定义的公共的类的名字必须是A
,不能是其它名称。也间接说明在同一个java
文件中公共的类只能有一个(注
意:在同一个java
文件中类名不能重名)。 - 通过以上的测试可以得出:如果定义
public class
的类,只能定义一个,并且要求此类名必
须和java
源文件名保持一致。(这是规则记住就行)。 - 接下来,在每一个类的类体当中都定义
main
方法,都写上程序的入口,看看是否可以编译和运行:
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
。
Java之 public class 和 class 的区别相关推荐
- java之public class和class声明区别详解 (转)
在编写类的时候可以使用两种方式定义类: public class定义类: class定义类: 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名 ...
- Java之public class和class声明区别
1.public class定义类和class定义类时: 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致. 如果类的声明使用了class的话,则类名称可以 ...
- java基础-public/private/protected的具体区别
在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友 ...
- java中public_java中public class与class的区别详解
以下是对java中public class与class的区别进行了分析介绍,需要的朋友可以过来参考下 在编写类的时候可以使用两种方式定义类:public class定义类: class定义类:如果一个 ...
- Java中public,private,protected以及default的访问权限区别
** Java中public,private,protected以及default的访问权限区别 ** 首先,从public的字面意思上就能够知道public所指的是公共的,从而我们可以知道publi ...
- JAVA入门级教学之(public class和class的区别)
目录 JAVA入门级教学之(public class和class的区别) 1.public class 和 class 的区别: 2.public class 类名A{ }的 类名A需要和源文件 ...
- java中public和private的区别
java中public和private的区别 public :public 表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 private :private 表示私有,私有的意 ...
- java中public、private、protected的区别
java中public.private.protected的区别 在java中通过三个关键字public.private.protected在类的内部来进行边界的设定,这些访问指定词(access s ...
- Java中实现接口与继承的区别
** Java中实现接口与继承的区别 ** 首先,先来了解一下什么是接口和继承.接口一般是使用interface来定义的.接口定义同类的定义类似,分为接口的声明和接口体,其中接口体由常量定义和方法定义 ...
最新文章
- TensorFlow中Session.run和Tensor.eval的区别
- 干货丨大牛带你走向机器学习“正道”:小朋友才迷信算法,大人们更重视工程实践
- 我自学python的路-Python 学习路线(非常适合小白的入门级教程)
- 谈谈 ES6 的 Promise 对象
- 爬虫IP被禁的简单解决方法
- JVM上的下一个Java——Scala
- js 短信验证码 6位数字
- RedissonClient 缓存Bug
- 小试MemSQL (The World's Fastest Database?)
- Wireshark之捕获过滤器
- vue-cli目录结构介绍
- android monkey 测试方法实践
- Reverse Linked List 反转链表
- 正点原子STM32F103 DMA代码例程魔改
- 计算机术语 gc 是什么意思,gc是什么意思(女生网络用语gc的含义)
- 基于MATLAB的银行卡号识别算法研究
- p5.js之Q版人物绘制
- 第一次创建STC15串口程序模板
- java全栈工程师培训,分享面经
- 谦虚的向大家问个技术问题,树型结构的排序问题
热门文章
- 运行在VMware上的VMware公司
- Table storage engine for ‘******‘ doesn‘t have this option 问题
- web前端-javascript常用的document对象使用详解
- 使用css做一个右向的三角箭头
- matlab实现TE/TM偏振布拉格反射镜
- 【STL】C++ STL之stack详解
- sparkstreaming处理kafka数据,数据积压问题解决方案
- 【小白从小学Python、C、Java】【计算机等级考试二级-必会题】【ASCII码与字符相互转化】
- 《移动App测试实战》——1.2 测试用例设计和评审
- 电大java语言程序设计_国家开放大学电大Java语言程序设计形考任务1答案