2012-03-12 23 views
-1

當我想要一個方法初始化一個變量和另一個方法來使用初始化變量時,局部變量的想法有點難以理解。Java - 如何在一個類的幾種方法中使用改變/修改的變量?

public class abc 

public int startAngle; 

public void angleMethod(){ 
startAngle = 90; 
angle = startAngle; 
} 

public void methodTwo(){ 
anotherVar = angle + 10; //I want this angle to be initialized to 90 

是具有已經由可能第一方法初始化爲90角?我想這樣做的原因是,我可以將我想對變量做的事情分解成更小的單個方法。

我試圖傳遞變量作爲自變量的第二種方法,是這樣的:

public void methodTwo(int angle) 

,但沒有奏效。

我讀過使用

this.angle = angle 

但林不知道這是什麼一樣或者其目的的。我相信我確實需要對變量做些事情,然後在我的程序的其他部分使用這些修改後的變量。

誰能幫助我嗎?謝謝。

+2

請告訴我們的只是你正在試圖做什麼,爲什麼,因爲它顯得撲朔迷離更詳細的(至少對我來說)。請向我們展示您的真實代碼。什麼時候構建了這個類,並構造了它?何時和誰調用這兩種方法,並且他們總是一個接一個地調用?也許你正在尋找使用常量值?我真的不知道。 – 2012-03-12 23:01:17

+0

您顯示的'代碼'中沒有任何地方聲明瞭變量'angle'。 – Perception 2012-03-12 23:01:55

回答

1

我認爲你不瞭解什麼是局部變量。在你的例子中,angleangleMethod()anglemethodTwo()(據我所知,根據提供的代碼,雖然我沒有看到你聲明的角度)angle不同。

我覺得這樣的事情是你要什麼:

public class abc 
{ 
    //Declare class-scoped variables, accessible by all class methods. Could be public or private. 
    public int startAngle; 

    //constructor - initialize vars here 
    public abc() 
    { 
     startAngle = 90; 
    } 

    public void method() 
    { 
     int angleVar = startAngle + 10; //startAngle will be 90. 
     //angleVar will be 100; 
     //angleVar can only be accessed inside this method. 
    } 
} 
+0

感謝您的回覆,現在更清楚了,我很傻 – WeylandYutani 2012-03-18 17:39:22

0

如果你想初始化屬性時創建的對象,你有兩個選擇:

  • 默認值

    int startAngle = 90 
    
  • 分配中(所有的)構造函數(S)

除此之外,如果你想檢查在curre之前是否調用過其他方法nt方法,你應該自己編程(例如,必須先調用的方法設置一個屬性,另一個方法檢查它)。

相關問題