簡體   English   中英

從顯示方法打印int []數組

[英]Printing int[] array from a display method

我正在嘗試從同一類的單獨方法中打印int []數組。

public class LargeInteger {

    public LargeInteger(String s) {

        int[] intArray = new int[s.length()];

        for (int i = 0; i < s.length(); i++) {
            intArray[i] = Character.digit(s.charAt(i), 10);
        }
    }

    public Object display() {

         for (int i = 0; i < intArray.length; i++) {     
                System.out.print(intArray[i]);
            }
    }   
}

我的intArray很明顯從顯示方法中隱藏了,但是我不確定該怎么辦

我會給你答案,但是您應該首先花一些時間在Google上查找問題。 Google幾乎“了解”一切...

public class LargeInteger {

    private int[] intArray;

    public LargeInteger(String s) {

        intArray = new int[s.length()];

        for (int i = 0; i < s.length(); i++) {
            intArray[i] = Character.digit(s.charAt(i), 10);
        }
    }

    public void display() {

         for (int i = 0; i < intArray.length; i++) {     
                System.out.print(intArray[i]);
            }
    }   
}

如果您的顯示方法未返回任何內容,則它應該為空。

intArray是構造函數中的局部變量
它在其他任何地方都不存在。

您需要改成私有字段。

您需要在LargeInteger方法外部聲明數組,例如

private int[] intArray;

public LargeInteger(String s){

    this.intArray = new int[s.length()];

}
public class LargeInteger {

private int[] intArray;

public LargeInteger(String s) {

    this.intArray = new int[s.length()];

    for (int i = 0; i < s.length(); i++) {
        intArray[i] = Character.digit(s.charAt(i), 10);
    }
}

public Object display() {

     for (int i = 0; i < this.intArray.length; i++) {     
            System.out.print(intArray[i]);
        }
}   
}

使intArray成為LargeInteger類的成員,而不是構造函數的本地成員:

public class LargeInteger {

    private int[] intArray;

    public LargeInteger(String s) {

        intArray = new int[s.length()];

        for (int i = 0; i < s.length(); i++) {
            intArray[i] = Character.digit(s.charAt(i), 10);
        }
    }

    public Object display() {

         for (int i = 0; i < intArray.length; i++) {     
                System.out.print(intArray[i]);
            }
    }   
}

只需從構造函數中聲明int[] intArray

它應該是

public class LargeInteger {

    private int[] intArray;

    public LargeInteger(String s) {

        intArray = new int[s.length()];

        for (int i = 0; i < s.length(); i++) {
            intArray[i] = Character.digit(s.charAt(i), 10);
        }
    }

    public Object display() {

         for (int i = 0; i < intArray.length; i++) {     
                System.out.print(intArray[i]);
            }
    }   
}

暫無
暫無

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

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