簡體   English   中英

JAVA方法和返回值/公共變量(基本)

[英]JAVA methods and returning values / public variables (basics)

我有點迷茫,對所有這些基本的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”(可以通過掃描器在后面的代碼階段進行初始化,因此,不要以為是常量)來知道數組中已經初始化了多少個值,但是我無法返回它,因為我已經返回了array [n],但是我不能直接調用它(盡管它是公共變量),因為我變成0(舊值8消失了),就像嘗試直接調用時一樣queue [3],它不會給我我需要的值。 但是,如果公共變量在方法完成后變為零,那又有什么意義呢? 在我的書中,如果我運行更改某些公共變量值的方法,則當我以后從另一個方法調用該變量時,該更改后的值應保留。 但是,JAVA中的邏輯似乎有所不同。

您正在創建ADT類的3個新objects 它們每個都將成員變量初始化為0。

如果希望它們在所有對象中具有相同的值,請嘗試使用static變量。 它們與類而不是對象相關聯。

- - - - - - - - - - - - - - - - - 編輯 - - - - - - - - --------------------------
而不是返回多個值,請嘗試以下操作:

  • 在您的Initialize方法中,使用iqueue完成所有您想要的工作。
  • 在類ADT添加兩個方法,即getIgetQueue ,它們返回iqueue當前值。

     public int getI() { return i; } 
  • 在您的main調用這些方法以獲取更新的值

如果使用static變量,則該類的所有對象將訪問相同的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM