[英]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
方法中,使用i
和queue
完成所有您想要的工作。 在類ADT
添加兩個方法,即getI
和getQueue
,它們返回i
和queue
當前值。
public int getI() { return i; }
在您的main
調用這些方法以獲取更新的值
如果使用static
變量,則該類的所有對象將訪問相同的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.