关于绕过java成员方法只能传值调用的两个方法:

同为面向对象的编程语言,学过C++,初学java,没有感受到两者具体有什么差别,直到今天,遇见了一个很尴尬的问题:不能修改java参数的值!
例如下面一段代码:

class example{
	public void test1(){
		int a=10;
		test2(a);
		System.out.println("a="+a);
	}
	public void test2(int a) {
		a--;
	}
}

这里,最后的输出结果一个是a=10
在java里,成员方法都是采用值传递,所以不会有 test(int & a)的写法,当时,也没有int*,那如果我要在test2方法里面修改a的值,可以怎么做呢?
我给出两种方法:
1、如果只是在类内部调用和修改这个参数,那么可将其声明为普通成员变量;
2、如果需要跨类调用并修改变量的值,可以将其声明为static 成员变量。在java里面,静态变量和方法虽然是类所有的,区别于个别对象,但却是单独分配一块内存,可以通过 类名.静态变量名 进行跨类调用。

初学java,如有错误,请不吝赐教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值