我有点迷失并且对这些基本的JAVA东西感到困惑。
假设我想要一个方法来为数组赋值,并且能够在某种程度上返回/记住指定值的数量,每个值单独依赖于索引,并将整个指定值数组合在一起,这样我就能够在其他方法中使用该信息。
以下是代码:
public class ADT {
public int i;
public int queue[] = new int[100];
public int Initialize(int n){
for(i=1; i<=8; i++){
queue[i]=(i/4 + 10/i)*i;
System.out.println(queue[i]);}
//public getI(int i) {this.i=i;}
return queue[n];}
public int getI() {
return i;}
public void main2() {
ADT class2 = new ADT();
class2.Initialize(3);
ADT class3 = new ADT();
class3.getI(); // DOESN'T RETURN 8
System.out.println();
System.out.println(i); // DOESN'T WORK (0)
}
public static void main(String[] args) {
ADT class1 = new ADT();
class1.main2();}}
换句话说,我希望能够从任何方法自由地操作这个数组,但是使用当前的代码我可以通过调用Initialize(x)来访问单独的索引值,但要打印出整个数组我只能使用“for循环”,即使这样我也需要访问“i”(可以通过后面的代码阶段中的扫描程序进行初始化,所以不要假设它是一个常量)来知道数组中已经初始化了多少个值,但是我我不能返回它,因为我已经返回了数组[n],我无法直接调用它,(尽管它是公共变量)因为我变为0(8的旧值消失),就像在尝试调用时一样直接让我们说队列[3],它不会给我我需要的价值。但是,如果公共变量在方法完成后变为零,那么它的重点是什么呢?在我的书中,如果我运行改变某个公共变量值的方法,那么当我从另一个方法调用变量后,该更改的值应该保留。然而,JAVA中的逻辑似乎有所不同。
答案 0 :(得分:1)
您正在创建班级objects
的3个新ADT
。每个都将成员变量初始化为0。
如果您希望它们在所有对象中具有相同的值,请尝试使用static
变量。它们与类而不是对象相关联。
---------------------------------- EDIT ------------ -----------------------------
不要返回多个值,请尝试:
Initialize
方法中,使用i
和queue
完成所需的所有工作。在班级ADT
中添加两个方法,即getI
和getQueue
,返回i
和queue
&gt;的当前值例如:
public int getI()
{
return i;
}
在main
中调用这些方法以获取更新后的值
如果使用static
变量,那么该类的所有对象都将访问相同的变量。