包的定义
包就是文件夹,用来管理各种功能不同的Java类,方便后期代码维护
- 包名的规则:公司域名反写+包的作用,需要全部英文小写,见名知意。com.hhh.domain
使用其他类的规则
- 使用其他类时,需要使用全类名
- 使用同一个包中的类时,不需要导包
- 使用java.lang包中的类时,不需要导包
- 其他情况都需要导包
- 如果同时使用两个包中的同名类,需要用全类名
final
final修饰方法 :表明该方法是最终方法,不能被重写
final修饰类:表明该类是最终类,不能被继承
final修饰变量:表明该变量是常亮,只能被赋值一次
常量
实际开发中,常量一般作为系统的配置信息,方便维护,提高可读性
常量命名规范:
- 单个单词:全部大写
- 多个单词:全部大写,单词之间用下划线隔开
细节
- final修饰的变量是基本类型:那么变量存储的数据值不能发生改变
- final修饰的变量是引用类型:那么变量存储的地址值不能改变,对象内部可以改变
权限修饰符
- 权限修饰符:用来控制一个成员能够被访问的范围
- 可以修饰成员变量,方法,构造方法,内部类
- 有四种作用范围,由小到大:private < 默认< protected < public
此图来自黑马程序员网课截图
使用规则:
- 成员变量私有
- 方法公开
- 特例:如果方法中的代码是抽取其他方法中的共性代码,这个方法也私有
代码块
- 局部代码块
写在方法里面的代码块,结束变量的生存周期
2. 构造代码块
写在成员位置的代码块
作用:把多个构造方法中重复的代码抽取出来
执行时间:创建本类对象的时候会先执行构造代码块再执行构造方法
public class Test {
private String name;
private int age;
{
System.out.println("开始创建对象了");
}
public Test(){
System.out.println("空参构造");
}
public Test(String name, int age) {
System.out.println("有参构造");
this.name = name;
this.age = age;
}
3. 静态代码块
格式:static{}
特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发,只执行一次
使用场景:初始化数据,并且只初始化一次
public class StaticTest {
private String name;
private int age;
public StaticTest() {
System.out.println("无参构造");
}
public StaticTest(String name, int age) {
System.out.println("有参构造");
this.name = name;
this.age = age;
}
static {
System.out.println("static block");
}
}
测试:
输出: