同为面向对象的编程语言,学过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,如有错误,请不吝赐教!