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

包、关键字、代码块

包、关键字、代码块

一、包(Package)

概念

  • 本质:包即文件夹,用于对不同功能的Java类进行分类管理,便于代码的后续维护

    包名规则

  • 命名格式:公司域名反写 + 包的作用(全英文小写,遵循"见名知意"原则)

    • 示例:com.company.utils(公司域名company.com反写为com.company,用途为工具类)

      全类名(全限定名)

  • 定义:类名前加上完整包名,用于区分不同包中的同名类

  • 示例:java.util.Date(包名java.util+ 类名Date

    导包(import)

  • 作用:导入指定包中的类,简化代码编写(无需重复书写全类名)

  • 语法:import 包名.类名;

    导包规则

  1. 同包内的类:直接使用,无需导包(优先在当前包中查找)

  2. java.lang包中的类:无需导包(如StringSystem等核心类)

  3. 其他包的类:必须导包才能简化使用

  4. 同名类冲突:若同时使用不同包的同名类,需对其中一个使用全类名(可只对另一个导包)

    • 示例:同时使用java.util.Datejava.sql.Date时,需显式书写其中一个的全类名

      二、final 关键字

      作用场景

  5. 修饰方法:被标记为最终方法,子类不可重写

  6. 修饰类:被标记为最终类,不能被其他类继承

  7. 修饰变量

    • 成为常量,只能赋值一次,提高代码可读性

    • 命名规范:

    • 单个单词:全部大写(如int MAX_VALUE

    • 多个单词:全部大写,单词间用下划线连接(如int MAX_ARRAY_SIZE

      特殊说明

  • 修饰引用类型变量时:

    • 变量存储的地址不可改变(不能指向新对象)

    • 但地址所指向的对象内部属性可以修改

      三、权限修饰符

      作用

      控制类成员(变量、方法、构造方法、内部类)的访问范围

      访问范围对比(从小到大)

      修饰符访问范围
      private仅同一个类内部可访问
      缺省(默认)同一个包中的其他类可访问
      protected不同包的子类可访问
      public任何包下的无关类均可访问

      四、代码块

      1. 局部代码块

  • 位置:方法内部的独立代码块

  • 示例

    publicstaticvoidmain(String[]args){{inta=10;System.out.println(a);// 10}inta=20;System.out.println(a);// 20}
  • 作用:提前结束变量生命周期(实际开发中很少使用,内存优化作用微小)

    2. 构造代码块

  • 位置:类的成员位置(类中方法外)

  • 示例

    publicclassStudent{privateStringname;// 构造代码块{System.out.println("学生");}publicStudent(){}publicStudent(Stringname){this.name=name;}}

特性:创建对象时优先于构造方法执行

适用场景:抽取多个构造方法中的重复代码

替代方案

  1. 核心代码放入一个构造方法,其他构造方法通过this()调用
  2. 将重复代码封装为普通方法,在构造方法中调用

3. 静态代码块

  • 定义:用static修饰的构造代码块(static { ... }
  • 特性
    • 随类的加载而自动执行
    • 仅执行一次(无论创建多少对象)
  • 适用场景:程序启动时初始化数据(避免重复初始化问题)

优势:相比直接初始化,可防止被反复调用时的重复初始化操作

http://www.cnnetsun.cn/news/128773.html

相关文章:

  • 36、深入了解Sun RPC:原理、格式与应用分析
  • linux环境下python连接海康工业相机
  • 【LH-AQ7A80】
  • Kotaemon支持Kyverno策略吗?Kubernetes原生管控
  • 10、互联网浏览与安全隐私全攻略
  • Kotaemon判决书摘要提取:关键信息速览
  • Kotaemon能否用于股票行情解读?风险提示必不可少
  • 46、X 系统扩展与兼容性函数详解
  • nt!KiDispatchInterrupt函数中nt!KiQueueReadyThread和nt!SwapContext和KiQuantumEnd3个函数的关系
  • 31、Awk脚本语言快速参考指南
  • Kotaemon如何平衡速度与精度?检索-重排协同机制
  • 为什么越来越多开发者选择Kotaemon做知识问答系统?
  • Kotaemon能否用于专利检索?知识产权领域新应用
  • Kotaemon如何实现多模态输入?图文混合处理展望
  • 18、Web开发技术综合指南
  • Kotaemon能否用于竞品分析?市场情报提取实战
  • GPU资源紧张?Kotaemon轻量化部署方案来了
  • Kotaemon与Elasticsearch集成实战:打造超强检索后端
  • Kotaemon用户体验反馈分析:NLP情感挖掘
  • Kotaemon框架对比评测:在主流RAG方案中脱颖而出
  • 数据挖掘技术助力大数据领域创新发展
  • **YOLOv12图像去雾检测革命:基于UnfogNet的恶劣天气目标检测突破性解决方案**
  • Kotaemon与主流LLM兼容性测试报告出炉
  • 差模干扰(Differential Mode Interference, DMI)与共模干扰(Common Mode Interference, CMI)全面解析
  • Kotaemon PPT内容抽取:演示文稿知识化方案
  • Ventoy 全能启动盘制作指南:告别繁琐,拥抱高效
  • 期末复习-改错题
  • 小红书私域引流天花板:专属卡片 + 多号聚合,安全又高效
  • 机器学习(深度学习)与教育类比
  • pnpm 深度解析:下一代包管理工具的原理与实践