final
1、当final修饰一个类的时候
public final class 类名称{
}
当前的类不能有任何的子类
2、当final修饰一个方法的时候
则这个方法为“最终”方法,即这个方法不能被任何人覆盖重写。
3、当final修饰局部变量
对于基本类型来说:不可变说的是变量当中的数据不可改变
对于引用类型来说,不可变说的是变量当中的地址值不可改变
地址值就是new 的时候会产生。
final student stu=new Student("gem")
stu.setname("abc")
这样stu中的内容就从gem变成了abc
但是stu指向的地址值没有发生变化。
4、当final修饰成员变量的时候
因为成员变量是有默认值的,比如说int型的默认值是0,String是null等等
那么根据这一个特性,当我们用final修饰成员变量的时候,必须给成员变量赋上值。原因如下:
如果使用了final并且不给成员变量赋值,那么成员变量就会使用默认值,也就是一直都是0,或null等等,并且永远都不能变,那就失去这个变量的意义的。
当然在我们对成员变量使用的final取修饰的时候,那么函数中的set方法也就失去意义了,因为我们已经赋好值,并且不能再去改变。也就用不到set方法了。
内部类:
字面意思,其实就是一个类中再套一个类
public void class A{
private int num=10;
public void class B{
system.out.println("B是内部类");
system.out.println("我可以输出A中的privat型 数据num"+num);
}
system.out.println("A是外部类类")
}
这里num是类A的私有的,仅供内部使用,但是我们类B属于这个类A中,所以即使num是private,我们还是可以使用。