JAVA方法和返回值/公共变量(基础知识)

时间:2014-04-08 11:02:44

标签: java

我有点迷失并且对这些基本的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中的逻辑似乎有所不同。

1 个答案:

答案 0 :(得分:1)

您正在创建班级objects的3个新ADT。每个都将成员变量初始化为0。

如果您希望它们在所有对象中具有相同的值,请尝试使用static变量。它们与类而不是对象相关联。

---------------------------------- EDIT ------------ -----------------------------
不要返回多个值,请尝试:

  • Initialize方法中,使用iqueue完成所需的所有工作。
  • 在班级ADT中添加两个方法,即getIgetQueue,返回iqueue&gt;的当前值例如:

    public int getI()
    {
        return i;
    }
    
  • main中调用这些方法以获取更新后的值

如果使用static变量,那么该类的所有对象都将访问相同的变量。