final在方法内部作用于基本类型和引用类型的不同种情况
- 基本类型,是值不能被改变 final int x = 5;之后,变量变成了常量,其值不能被改变
- 引用类型,是地址值不能被改变,但是对象中的属性可以被改变
引用:
class Demon_Final {
publlic static void main(String[] args) {
final Beleo be = new Beleo("张三", 23); //在其前面加了final
/*be = new Beleo("里斯",24);*/ //这里会报错,因为对象be被final修饰后其地址值不能再被改变
be.setName("里斯"); //虽然地址值不可以被改变,但是可以改变他的属性值,这样它的地址值还是原来的地址值
be.setAge(32);
System.out.println(be.getName()+"....." +be.getAge());
}
}
class Beloe {
String name; //定义属性
int age;
public Beleo() {} //无参构造
public Beleo(String name,int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public getAge () {
return age;
}
public void print() {
System.out.println("hhhhhh");
}
}