当前位置: 首页 > news >正文

做js题目的网站知乎抖音代运营公司合法吗

做js题目的网站知乎,抖音代运营公司合法吗,网站首页大图轮播,求购机械加工在Java中,每个源文件(.java文件)只能有一个public顶层类(即直接定义在文件中的类,而非嵌套类),且该类名必须与文件名完全一致。但内部类(Inner Class)可以声明为public&a…

在Java中,每个源文件(.java文件)只能有一个public顶层类(即直接定义在文件中的类,而非嵌套类),且该类名必须与文件名完全一致。但内部类(Inner Class)可以声明为public,因为它们属于外部类的成员,而非独立的顶层类,其中外部类不一定只是顶层类。以下是详细的解释和示例:


1. 顶层类的规则

规则:每个.java文件只能有一个public顶层类
// ✅ 正确:文件名必须为 MyClass.java
public class MyClass { // 顶层类,唯一public类
}class Helper { // 非public顶层类(包级私有)
}
错误示例
// ❌ 错误:文件名为 MyClass.java,但包含两个public顶层类
public class MyClass { 
}public class AnotherClass { 
}

2. 内部类的特殊性

内部类是外部类的成员,因此其访问修饰符(如publicprivateprotected)独立于顶层类的限制。

示例:内部类声明为public
public class OuterClass { // 唯一public顶层类// ✅ 合法:内部类可以声明为publicpublic class InnerPublicClass { }private class InnerPrivateClass { }
}
内部类的访问规则
  • public内部类:可以被任何类访问(需通过外部类实例或静态引用)。
  • private内部类:仅外部类内部可见。
  • protected/包级私有内部类:遵循常规访问控制规则。

3. 为什么允许内部类为public

(1) 内部类是外部类的成员

内部类本质上属于外部类的一部分,其public修饰符仅控制该成员在外部类之外的可见性,而非文件级别的结构。

(2) 编译后的文件结构

Java编译器会将内部类编译为独立的.class文件,格式为:外部类$内部类.class
例如:

  • OuterClass.class
  • OuterClass$InnerPublicClass.class
  • OuterClass$InnerPrivateClass.class

这些文件不违反“一个.java文件对应一个public类”的规则,因为内部类不是顶层类。


4. 内部类的使用场景

(1) 暴露特定功能
public class Collection {// 对外公开的迭代器接口public class Iterator { public boolean hasNext() { /* ... */ }}
}// 外部使用
Collection collection = new Collection();
Collection.Iterator iterator = collection.new Iterator();
(2) 实现封装
public class Database {// 私有内部类,隐藏连接细节private class Connection { void connect() { /* ... */ }}// 对外提供安全接口public void executeQuery() {Connection conn = new Connection();conn.connect();// ...}
}

5. 静态内部类(Static Nested Class)的特殊性

静态内部类与普通内部类的区别在于:

  • 不依赖外部类实例:可以直接通过外部类.内部类访问。
  • 可独立存在:即使没有外部类实例,也能创建静态内部类对象。
public class OuterClass {public static class StaticInnerClass { // ✅ 合法:静态内部类可声明为public}
}// 外部使用(无需外部类实例)
OuterClass.StaticInnerClass obj = new OuterClass.StaticInnerClass();

总结

类型访问修饰符是否受“单个public类”限制本质
顶层类只能一个public✅ 是直接定义在文件中,独立存在
内部类可自由定义❌ 否外部类的成员,属于外部类的一部分
静态内部类可自由定义❌ 否静态成员,与外部类实例无关

关键点

  • Java的“单个public类”规则仅限制顶层类,不限制内部类。
  • 内部类的public修饰符控制的是其作为成员的可访问性,而非文件结构。
http://www.dtcms.com/a/403572.html

相关文章:

  • MyBatis的最佳搭档(MyBatis-Plus)
  • 无用知识研究:和普通函数不同,返回类型也参与了模板函数的signature
  • 简单小结类与对象
  • Java 大视界 -- Java 大数据机器学习模型在金融风险传染路径分析与防控策略制定中的应用
  • 【C++】Template:深入理解特化与分离编译,破解编译难题
  • 【把15v方波转为±7.5v的方波】2022-12-21
  • 自己可以做一个网站吗自己怎么做直播网站吗
  • 嵌入式开发常见问题解决:Keil头文件路径与MCUXpresso外设配置错误
  • 从Android到iOS:启动监控实现的跨平台技术对比
  • 数据开放网站建设内容大连可以做网站的公司
  • lesson67:JavaScript事件绑定全解析:从基础到高级实践
  • 软件开发还是网站开发好惠州seo招聘
  • ARM芯片架构之CoreSight系统架构规范
  • 品牌网站建设黑白I狼J足球比赛直播网
  • 支持向量机深度解析:从数学原理到工程实践的完整指南——核技巧与凸优化视角下的模式识别革命
  • FPGA有什么作用和功能,主副关系是什么,跟通道有什么关系
  • 怎么做整蛊网站dw自己做的网站手机进不去
  • Udp 和 Tcp socket的一般编程套路(笔记)
  • C++_STL和数据结构《3》_仿函数作为STL中算法参数的用法、匿名函数、序列容器使用、关联容器使用、无关联容器使用、容器适配器使用
  • php基础-流程控制(第12天)
  • 怎样建设尧都水果网站网页游戏网站556pk游戏福利平台
  • logo做ppt模板下载网站简历制作官网
  • LeetCode:51.岛屿数量
  • English Around the House and Farm
  • 目标速度估计中MLE和CRLB运用(二)
  • 沈阳网站建设找思路做区位分析的地图网站
  • 莱芜做网站建设的公司seo交流qq群
  • MongoDB Ops Manager部署
  • DecDEC论文精读:动态误差补偿的低比特LLM推理优化方案
  • 面试复习题--Android的前沿技术