[java]代码库
package fengke.finalandstatic;
/**
* final的故弄玄虚=====哈哈哈哈======当你在方法中不需要改变作为参数的对象变量时,明确使用final进行声明,会防止你无意的修改而影响到调用方法外的变量
* @author 锋客
* 上面这段代码好像让人觉得用final修饰之后,就不能在方法中更改变量i的值了。
* 殊不知,方法changeValue和main方法中的变量i根本就不是一个变量,
* 因为java参数传递采用的是值传递,对于基本类型的变量,相当于直接将变量进行了拷贝。
* 所以即使没有final修饰的情况下,在方法内部改变了变量i的值也不会影响方法外的i。
* 注意:拷贝
*/
public class FinalParam2 {
public static void main(String[] args) {
MyClass_2 myClass = new MyClass_2();
int i=0;
myClass.changeValue(i);
System.out.println(i);
}
}
//class MyClass_2{
// void changeValue(final int i){
// i++;
// }
//}
class MyClass_2{
void changeValue( int i){
i++;
}
}