包、关键字、代码块
一、包(Package)
概念
本质:包即文件夹,用于对不同功能的Java类进行分类管理,便于代码的后续维护
包名规则
命名格式:公司域名反写 + 包的作用(全英文小写,遵循"见名知意"原则)
示例:
com.company.utils(公司域名company.com反写为com.company,用途为工具类)全类名(全限定名)
定义:类名前加上完整包名,用于区分不同包中的同名类
示例:
java.util.Date(包名java.util+ 类名Date)导包(import)
作用:导入指定包中的类,简化代码编写(无需重复书写全类名)
语法:
import 包名.类名;导包规则
同包内的类:直接使用,无需导包(优先在当前包中查找)
java.lang包中的类:无需导包(如String、System等核心类)其他包的类:必须导包才能简化使用
同名类冲突:若同时使用不同包的同名类,需对其中一个使用全类名(可只对另一个导包)
示例:同时使用
java.util.Date和java.sql.Date时,需显式书写其中一个的全类名二、final 关键字
作用场景
修饰方法:被标记为最终方法,子类不可重写
修饰类:被标记为最终类,不能被其他类继承
修饰变量:
成为常量,只能赋值一次,提高代码可读性
命名规范:
单个单词:全部大写(如
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;}}
特性:创建对象时优先于构造方法执行
适用场景:抽取多个构造方法中的重复代码
替代方案:
- 核心代码放入一个构造方法,其他构造方法通过
this()调用 - 将重复代码封装为普通方法,在构造方法中调用
3. 静态代码块
- 定义:用
static修饰的构造代码块(static { ... }) - 特性:
- 随类的加载而自动执行
- 仅执行一次(无论创建多少对象)
- 适用场景:程序启动时初始化数据(避免重复初始化问题)
优势:相比直接初始化,可防止被反复调用时的重复初始化操作