文章目录

  • 1. public class 和 class 的区别
  • 2. 总结:

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

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 方法,都写上程序的入口,看看是否可以编译和运行:
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 的区别相关推荐

  1. java之public class和class声明区别详解 (转)

    在编写类的时候可以使用两种方式定义类:     public class定义类:     class定义类:     如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名 ...

  2. Java之public class和class声明区别

    1.public class定义类和class定义类时: 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致. 如果类的声明使用了class的话,则类名称可以 ...

  3. java基础-public/private/protected的具体区别

    在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友 ...

  4. java中public_java中public class与class的区别详解

    以下是对java中public class与class的区别进行了分析介绍,需要的朋友可以过来参考下 在编写类的时候可以使用两种方式定义类:public class定义类: class定义类:如果一个 ...

  5. Java中public,private,protected以及default的访问权限区别

    ** Java中public,private,protected以及default的访问权限区别 ** 首先,从public的字面意思上就能够知道public所指的是公共的,从而我们可以知道publi ...

  6. JAVA入门级教学之(public class和class的区别)

    目录 JAVA入门级教学之(public class和class的区别) 1.public class 和 class 的区别: 2.public class 类名A{ }的    类名A需要和源文件 ...

  7. java中public和private的区别

    java中public和private的区别 public :public 表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 private :private 表示私有,私有的意 ...

  8. java中public、private、protected的区别

    java中public.private.protected的区别 在java中通过三个关键字public.private.protected在类的内部来进行边界的设定,这些访问指定词(access s ...

  9. Java中实现接口与继承的区别

    ** Java中实现接口与继承的区别 ** 首先,先来了解一下什么是接口和继承.接口一般是使用interface来定义的.接口定义同类的定义类似,分为接口的声明和接口体,其中接口体由常量定义和方法定义 ...

最新文章

  1. TensorFlow中Session.run和Tensor.eval的区别
  2. 干货丨大牛带你走向机器学习“正道”:小朋友才迷信算法,大人们更重视工程实践
  3. 我自学python的路-Python 学习路线(非常适合小白的入门级教程)
  4. 谈谈 ES6 的 Promise 对象
  5. 爬虫IP被禁的简单解决方法
  6. JVM上的下一个Java——Scala
  7. js 短信验证码 6位数字
  8. RedissonClient 缓存Bug
  9. 小试MemSQL (The World's Fastest Database?)
  10. Wireshark之捕获过滤器
  11. vue-cli目录结构介绍
  12. android monkey 测试方法实践
  13. Reverse Linked List 反转链表
  14. 正点原子STM32F103 DMA代码例程魔改
  15. 计算机术语 gc 是什么意思,gc是什么意思(女生网络用语gc的含义)
  16. 基于MATLAB的银行卡号识别算法研究
  17. p5.js之Q版人物绘制
  18. 第一次创建STC15串口程序模板
  19. java全栈工程师培训,分享面经
  20. 谦虚的向大家问个技术问题,树型结构的排序问题

热门文章

  1. 运行在VMware上的VMware公司
  2. Table storage engine for ‘******‘ doesn‘t have this option 问题
  3. web前端-javascript常用的document对象使用详解
  4. 使用css做一个右向的三角箭头
  5. matlab实现TE/TM偏振布拉格反射镜
  6. 【STL】C++ STL之stack详解
  7. sparkstreaming处理kafka数据,数据积压问题解决方案
  8. 【小白从小学Python、C、Java】【计算机等级考试二级-必会题】【ASCII码与字符相互转化】
  9. 《移动App测试实战》——1.2 测试用例设计和评审
  10. 电大java语言程序设计_国家开放大学电大Java语言程序设计形考任务1答案