java final 修飾的引數小解
/**
* <p>
* final修飾的基本型別引數,不允許修改,否則編譯即報錯;
* final修飾的引用型別引數,不能修改引用,但可以修改引用物件內部的屬性;
*/
public class Test {
public static void main(String hh[]){
User user=new User();
user.setId(1);
user.setUserName("校長");
user.setPassword("123456");
checkInt(user);
int i = 1;
System.out.println(i);
checkInt2(i);
System.out.println(i);
}
/**
* 對於基本型別,基本型別的值在方法內部是不能夠改變的
* @param i
*/
public static void checkInt(final User user)
{
//user變數的引用是不能夠改變的,否則的話,編譯會報錯
// user=new User();
//user變數的值是能夠修改的,但所指向的引用是不能夠改變的
user.setUserName("小王");
}
/**
* 對於基本型別,基本型別的值在方法內部是不能夠改變的
* @param i
*/
public static void checkInt2(final int i)
{
//編譯不通過,final修飾的區域性變數i的值是不能夠改變的
// i=10;
}
}
class User{
int id;
String userName;
String password;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the userName
*/
public String getUserName() {
return userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
}