public class和class声明类的区别

本文介绍了Java中类定义的基本规则,包括public class与普通class的区别,以及在一个Java文件中定义多个类的情况。强调了类名与文件名匹配的重要性。

1、public class 类名称

其类名称必须与文件名称一致,否则程序将无法编译

2、class 类名称

类名称可以与文件名称不一致,但在执行时一定要执行生成后的*.class

3、在一个java文件中可以有多个class类的定义,但只能有一个public class定义


在Java中,`public` `public final` 用于修饰时具有不同的语义用途。以下是它们的区别: ### `public class` - **可继承性**:使用 `public` 修饰的可以被其他包中的继承。 - **可见性**:该对所有包都是可见的,任何其他都可以访问它并创建其实例。 - **灵活性**:允许子扩展其功能,适用于需要作为框架或库的一部分提供给外部使用的。 例如: ```java public class Animal { public void makeSound() { System.out.println("Some sound"); } } ``` 上述 `Animal` 可以被其他包中的继承,并且可以根据需求重写 `makeSound` 方法[^3]。 ### `public final class` - **不可继承性**:使用 `public final` 修饰的不能被任何其他继承。 - **安全性与设计意图**:通常用于确保的设计不被修改,防止子改变其行为,从而保证某些关键逻辑的安全性一致性。 - **性能优化**:JVM 可以对 `final` 的方法调用进行内联优化,因为知道这些方法不会被覆盖。 例如: ```java public final class StringUtility { private StringUtility() {} // 私有构造器,防止实例化 public static String reverse(String input) { return new StringBuilder(input).reverse().toString(); } } ``` `StringUtility` 是一个工具,通过将其声明为 `final`,可以确保没有人能够创建它的子来修改静态方法的行为[^2]。 ### 总结 | 特性 | `public class` | `public final class` | |--------------------|----------------------------------------|------------------------------------------| | 是否可继承 | 是 | 否 | | 主要用途 | 提供可扩展的基础 | 确保不被修改,提高安全性性能 | | 设计考虑 | 需要支持多态继承 | 不希望被继承,或者为了封装固定的功能 | 选择使用哪种修饰符取决于具体的需求。如果希望能够被自由地扩展定制,则应使用 `public`;如果希望保护的完整性并且不需要继承,则应该使用 `public final`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值