2013-01-23 38 views
0

我試圖做一個新的 「時間」 類,Android的新對象類

time.java

public class Time{ 
    public int hour,minute; 
    public double second; 

    public Time(){ 
     super(); 
    } 
} 

main_activity.java

Time newT = new Time(); 
newT.hour = 3; 

,但我在這裏得到一個錯誤:newT.hour

error(in eclipse)「令牌上的語法錯誤」小時「,Variabledeclaratorid期望在此令牌」

+2

您是否閱讀過錯誤信息? – SLaks

+0

@丹你有沒有意識到進口時間? –

+0

新增實際解決方案,不要將代碼放在main_activity類體中,而是將其放入方法中。看到我的答案。 – stealthjong

回答

3

小時的可訪問性爲private,所以你不能從另一個類訪問它。創建getter和setter方法:

public class Time{ 
    private int hour,minute; 
    private double second; 

    public Time(){ 
     super(); 
    } 

    public void setHour(int hour) { 
     this.hour = hour; 
    } 

    public int getHour() { 
     return hour; 
    } 
} 

通過newT.setHour(3);

編輯現在設置它:我看你修改了錯誤。實際的錯誤是因爲你已經把這些行

Time newT = new Time(); 
newT.hour = 3; 
在類體內

,我假設你有這樣的事情:

public class Main { 
    Time newT = new Time(); 
    newT.hour = 3; 
} 

但你不能做這樣的事情,你可能只申報變量/方法/類在你的類體中。試試這個:

public class Main { 
    public void myMethod { 
     Time newT = new Time(); 
     newT.hour = 3; 
    }   
} 
+0

你也加了這行>> private double String second; :-O – AAnkit

+0

@Ankit謝謝。私人修飾語是一個明顯的錯誤,我傾向於忽視其餘部分。 – stealthjong

+0

同意,即使我嘗試相同,但得到了這一行,並通過問題提問者覺醒,他是如何編譯它,指向另一個問題,但不是這個。:) :) – AAnkit

0

由於您沒有告訴我們有關明確狀態的錯誤,您無法從課外訪問private字段。

1

使用setter和getter方法。 在您的課堂中設置兩個公共方法來設置小時值並獲取它。 那樣你可以使用私有變量。

否則您需要將它們公開。

1

首先我想知道你是如何編譯這個「private double String second;」這一行的。 (雙串在一起:-o),現在確定下面是你的解決方案。

您的時間類應該是這樣的下面

public class Time{ 

     private int hour,minute; 
     private double seconds; 


     public int getHour() { 
      return hour; 
     } 

     public void setHour(int hour) { 
      this.hour = hour; 
     } 

     public int getMinute() { 
      return minute; 
     } 

     public void setMinute(int minute) { 
      this.minute = minute; 
     } 

     public double getSeconds() { 
      return seconds; 
     } 

     public void setSeconds(double seconds) { 
      this.seconds = seconds; 
     } 
    } 

,做這樣的事情來設置和獲取小時/分/秒

Time newT = new Time(); 
     newT.setHour(1); 

而且導入你正在編寫新的上課時間。