2013-08-30 55 views
0

快速提示:我仍然對編程不熟悉,並且靜態方法未在我的上一課中討論過。我試圖與我的教授接觸,但似乎她現在太忙了,無法迴應。以下是非評分分配;我只想知道我想在這裏做什麼。將該方法更改爲靜態方法並更改該方法的調用(Java)

什麼,我想是這樣做:

  1. 定義類HelloPrinter有一個方法,將做到以下幾點:一 。接受一個int參數作爲次數。 b。使用該參數作爲在循環中使用的標記值。 c。在循環中,如果編號爲奇數,則使用switch語句打印出「Hello,Dr. Zhang」,如果編號爲偶數,則打印出「Hello,Class」。
  2. 在主要方法中,實例化此類的一個對象並使用它來調用該方法。

  3. 更改方法靜態方法,改變方法的調用

  4. 在HelloPrinter,聲明一個名爲C1的私有變量,並將其初始化爲零,聲明另一個int變量命名爲C2的,並初始化爲零
  5. 爲counter2添加靜態字。
  6. 爲不接受參數的HelloPrinter類創建構造函數。在構造函數的主體中,將counter1和counter2都加1。
  7. 定義名爲getCounter1()的類中的另一個方法,該方法不接受任何參數,而是返回counter1的值。對counter2執行相同操作
  8. 爲HelloPrinter類定義toString()方法。該方法將返回帶有標籤的counter1和counter2的值。
  9. 測試主程序

我有什麼所有的方法:

public class HelloPrinter{ 
     private int counter1 = 0; 
     private static int counter2 = 0; 

     public HelloPrinter(int n){ 
      for(int x=1;x<=n;x++){ 

       int i=x; 
     //  System.out.println(x); <---testing only 
       switch(i%2){ 
       case 0: 
         System.out.println("Hello Dr. Z"); 
         break; 
       case 1: 
         System.out.println("Hello Class"); 
         break; 
    } 
    } 

}

(我也已經有吸氣劑(getCounter1/getCounter2)和的toString,只是不想氾濫。) 我的問題是如何將主方法更改爲靜態方法並更改方法的調用?需要做什麼?我該怎麼去做呢? 同樣,這不是一個等級。假設它是Java的複習。不幸的是,在上個學期,我們的課程落後了,因爲她不斷跳過部分內容,不得不稍後再回過頭去(如果你問我,我去的大學需要一個以上的編程教授)。

任何幫助將不勝感激... 謝謝 -Iain。

回答

0

main總是靜態的。

我認爲你被要求做的是在你的班級有一個非靜態方法來進行打印。爲了從main調用它,你需要從這個類創建一個對象。然後爲你的課堂添加一個靜態方法。要調用靜態方法,你不需要從你的類創建一個對象。

所以:

1-

public static void main(String[] args) { 
    MyClass obj = new MyClass(); 
    obj.nonStaticMethod(); 
    } 

2-

public static void main(String[] args) { 
    MyClass.staticMethod(); 
    } 

此外,主可以在同一類(MyClass的),也可以單獨創建另一個類包含主要。

+0

現在我明白了,現在我覺得自己像個白癡,因爲之前沒有看到它。謝謝埃米爾和克里斯在這方面的幫助。 – user2734474

0

是如何將主要方法更改爲靜態方法並更改方法的調用?需要做什麼?

main方法是一個靜態方法:

public static void main(String[] args) 
{ 
    // This is the entry point into any JAR file. This is the first line of use 
    // code ran by the JRE. 
} 

如果您有沒有一個main方法程序將無法作爲應用程序運行。您應該爲該課程添加main方法,例如用於測試的課程Test

public class Test 
{ 
    public static void main(String[] args) { 
     // Add in your testing code here. 
    } 

} 
+1

我認爲通過「主要方法」,他指的是第1點概述的方法。 – arshajii

0

「我的問題是如何將主要方法更改爲靜態方法並更改方法的調用?需要完成什麼?我該如何去做呢?」

首先,main已經被認爲是一種靜態方法;它的簽名是

public static void main(String args[]) 

(該String[]的名稱並不重要,但其餘的需要存在。)

(如果你說是不是在談論main「主要方法」 ,你可以在這之前忽略三條線)

其次,它看起來像4,5,7和8完成。要解決1,2和3,你需要創建一個完全不同的方法(比如getCounter1(),​​和toString()應該是他們自己的不同方法),並且按照指令說的去做。

對於6,你給我們的代碼有一個構造函數接受一個參數(public HelloPrinter(int x)),做1,2和3中的方法應該做的。就像它說的那樣,你需要一個不帶參數的構造函數(即public HelloPrinter() { ...)。

畢竟你應該從main本身調用所有這些方法(如9問)。