Java-包和final

包的使用

不同包下的类调用时 要引用包名

1
2
3
4
5
6
public class Test{
public static void main(String []arg){
heima.test.Student stu=new heima.test.Stuent()
// 假如Student类不在当前包下而是在heima.test的包下
}
}

如果不想用包名来调用类 那就在代码前加入import引入包

1
2
3
4
5
6
7
import heima.test.Studnt

public class Test{
public static void main(String []arg){
Student stu=new Stuent()
}
}

包的使用规则


  • 使用同一个包的类时 不需要调用包
  • 使用java.lang包中的类时 不需要导包
  • 其他情况都需要导包
  • 如果同时两个包中的同名类 需要使用全类名

final关键字


  • final方法 表明该方法是最终方法 不能被重写
  • final类 表明该类是最终类 不能被继承
  • final 变量 叫做常量 变量不能再被改变 只能赋值一次

但是final修饰引用数据类型的时候 记录的地址值不能发生改变 但是内部属性可以改变

比如对象内的常量可变 数组内的元素可变

权限修饰符


public > protected > 缺省 >private

修饰符 同一个类中 同一个包中的其他类 不同包下的子类 不同包下的无关类
private
缺省
protect
public

静态代码块


在创建类时执行 并且只执行一次 类第一次进入到内存时执行

1
2
3
static{
// 静态代码块的内容
}

主要是为了方便类中数据的初始化 并且数据初始化的代码块只想执行一次