加final修饰符的参数,在该方法内该参数则为常量
如果参数是基本数据类型:
public static void main(String[] arge){
int s = 1;
fin(s);
//main里面的s该没事
s = 2;
System.out.println(s);
}
public static void fin(final int s){
//s在该方法里面是fianl即常量,所以不可以改变
// s = 1;//报错 因为在该方法相对于 final int s
}
如果是引用类型:
public class dome{
public static void main(String[] arge){
Dog dog = new Dog();
fin(dog);
dog = new Dog();//正常
}
public static void fin(final Dog s){
//相当于 final Dog s = 传入的参数,
// 不可以改变引用但可以改改对象的属性
// s = new Dog();//报错
s.name = "大狗";
System.out.println(s.name);
}
}
class Dog{
String name = "二狗";
}