用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

final的故弄玄虚=====哈哈哈哈======当你在方法中不需要改变作为参数

2015-07-19 作者: 锋客举报

[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++;
	}
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...