JAVA 类声明中关键字public的作用

简介:       JAVA类声明中关键字public起到什么作用呢?如下Hello类的声明,按着字面的意思理解是:Hello类是公共的, 要求Hello类与类文件名必须保持一致,并且一个java文件中只能有一个public关键字声明的类。

      JAVA类声明中关键字public起到什么作用呢?如下Hello类的声明,按着字面的意思理解是:Hello类是公共的,
要求Hello类与类文件名必须保持一致,并且一个java文件中只能有一个public关键字声明的类。

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

如果关键字public命名的类Hello与类文件名不一致,如下图:

程序编译时就会报错:

使用public关键字正确命名与类名保持一致:

使用public关键字正确命名与类名保持一致,Hello.java文件可以正常编译,可以正确执行:

如果,java文件中类命名不使用public关键字,那么类声明可以不与java文件保持一致,如下代码所示:

HelloDemo.java可以正常编译,但是,会产生一个HelloModle.class文件:

那么,编译HelloDemo.java后,要执行的文件也变为HelloModle.class了:

如果HelloDemo.java中有多个非public关键字声明的类,就会产生多个与之相应的.class文件。

总结:使用public关键字声明的类必须与java文件名保持一致,并且一个java文件中只能有一个public关键字修饰的类名称,
编译后会产生一个与java文件名相应的.class文件,而一个java文件中可以同时又多个不使用public关键字声明的类,但是编
译后会产生多个与之对应的.class文件,并且要执行的文件是对应的多个.class的前缀名。


目录
相关文章
|
3天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
|
21天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
42 17
|
13天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
17天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
58 4
|
17天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
36 2
|
22天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
26天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
30 3
|
7天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
15天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
6天前
|
安全 Java 开发者
Java 多线程并发控制:深入理解与实战应用
《Java多线程并发控制:深入理解与实战应用》一书详细解析了Java多线程编程的核心概念、并发控制技术及其实战技巧,适合Java开发者深入学习和实践参考。
下一篇
无影云桌面