this.cl[] = new int[n];
this.c2[] = new int[n];
this.c2[] = new int[n];
解决方案 »
- 证明udp覆盖旧包,求助
- 新手学java,,各种不会~~~
- 想对JAVA的基本命令和jVM有比较深的理解,各位老大给个建议,从啥途径啊?
- 如何使用Ajax写一个用户名验证的效果
- 求助:笔试的时候遇到的问题
- 100 分求 Java in a Nutshell,2nd Edition
- 【新手提问】img.getWidth获取到图片的宽度是负数
- 求高手帮忙啊
- 指导几个java就业单位
- javamail Authenticat的问题
- 求教:运行时抛出sleep interrupted异常(在线等……)
- 关于一些基础的问题************************************针对以下题目,请选择最符合题日要求的答案
c2[] = new int[n];
如果在同一个类里面,那么可以声明
public class A{
private int c1[],c2[];
public void func1(){
//修改c1,c2
}
}
这样保证在这个类A里面的成员变量c1[],c2[]的变化是全局的。
如果在不同的类里面,那么可以这样
public class B{//声明一个类B,我们要修改B中的变量c1[],c2[]
public int c1[],c2[];}
public class A{//声明一个类A,在这个类中修改类B中的成员变量。
private B b;
public A(B b){//在构造函数中把要修改的类B的实例b传递进来
this.b=b;
}
public void func1(){
//修改b.c1[],b.c2[] 在这里引用c1[],c2[]
}
}
方式就是这样,具体的地方可能有错误,你试试就知道了
这样,当类传递时,传的是引用,所以在方法内的改变会被带出去。另一种方案是自己再写一个类来封装两个数组,然后传参数的时候传递这个类就可以了,
总之,只要传递的是类就可以。
class ArrayClass{
public int c1[], c2[];
}public Class TestClass{
public funcl(ArrayClass ac){
ac.c1=new int[10];
ac.c2=new int[10];
}
如果使用一个包装类的话岂不是强迫我在内部,改变我的数据接口,往往传入的两个变量也不是那么紧密相关的。
看来对于java语言来说,这一点并不方便...明早揭帖。谢谢各位
如果是想使用类似C++的传值引用,记住在java里面只有类对象传值才是引用传值
另外其实我们也可以引入类似C++的全局变量的概念,这样你所有的类都可以使用并且改变他们了public class PublicValues {
public static String value1;
public static int value2;
...
}这样定义之后就可以当作全局变量来操作了