2013-04-11 71 views
0

我是一名開始接觸Java挑戰的計算機科學專業的學生。我們必須編寫一個錯誤的程序;這實際上是一個有趣的練習。我的一個同學給我發了一個補丁(英文不差),並說他給班上加了public我是否需要申報一個班級公衆(它是唯一一個沒有人會使用的班級中的班級)

這讓我感到驚訝。它是重要的還是僅僅是宣佈類public的慣例。 該方案的工作,並從我的理解默認是封裝私人,我認爲這將是最好的蹩腳的小腳本,CS學生互相郵寄。

任何人都可以給我一些更深入的瞭解 - 關於Java的大部分內容,但一般的CS理論也可能證明是有洞察力的 - 也許有些術語可以用來進一步研究這些概念。

我想知道,如果我的同學更正是有效的或重要的,爲什麼。

編輯
抱歉,這是我原來的程序沒有錯誤

import java.util.Scanner; 
/** 
* Universal hello translator 
* Author: Noel Niles mail: [email protected] 
* 
*/ 
class HelloUniverse { 
    public static void main (String [] args) 
    { 
     /* code */ 
     int country; //number of country from list 
     String name; //name of person 
     String greeting; //hello in different languages 

     Scanner key = new Scanner(System.in); 
     System.out.print("Where are you from?\n"+ 
         "Enter a number from the list:\n"); 

     //TODO(anyone): Add some more countries and greetings 
     System.out.print("1. Afganistan\n" + 
         "2. Antarctica\n" + 
         "3. Australia\n" + 
         "4. Austria\n" + 
         "5. Bangladesh\n" + 
         "6. Belgium\n" + 
         "7. Brazil\n"  + 
         "8. Burma\n"  + 
         "9. Canada\n"  + 
         "10. Chile\n"  + 
         "11. China\n" ); 

     //get the country code 
     country = key.nextInt(); 

     key.nextLine(); 
     //get the users name 
     System.out.println("What is you name?"); 
     name = key.nextLine(); 

     switch (country) { 
      case 1: greeting = "salaam"; 
        break; 
      case 2: greeting = "h-h-h-i-i thththththere";   
        break; 
      case 3: greeting = "G'day mate"; 
        break; 
      case 4: greeting = "Gruss Gott"; 
        break; 
      case 5: greeting = "nomoskar"; 
        break; 
      case 6: greeting = "Hallo"; 
        break; 
      case 7: greeting = "Ola"; 
        break; 
      case 8: greeting = "mingalaba"; 
        break; 
      case 9: greeting = "Good day eh"; 
        break; 
      case 10: greeting = "Hola"; 
        break; 
      case 11: greeting = "Nei hou"; 
        break; 
      default: greeting = "Invalid country"; 
        break; 
     } 

     //display the greeting and the users name 
     System.out.printf("%s %s\n", greeting, name); 
    } 
} 
+0

我不明白。如果課堂將自己定義爲一個蹩腳的腳本,並且您的唯一目標是使其工作,並且它按原樣運行,那麼您爲什麼關心其可見性修改器? – 2013-04-11 07:32:54

+0

咦?我認爲我們的意思是一樣的。它只是一種節省擊鍵。但我想知道是否有一些我打破的約定。 – noel 2013-04-11 07:35:09

+0

我會公開一個主類,主要是讓這個類出現在生成的javadoc中,從而能夠知道它是一個主類,以及主方法的可接受參數。 – 2013-04-11 07:37:53

回答

3

不,這是罰款含有main方法是非公類。 (如果你真的想要的話,它甚至可以是私人的嵌套的類。)

main方法本身必須是公開的,但類沒有。

(請注意,有沒有「一般的CS理論」在這裏 - 每種語言和平臺都有自己的約定和規則在這裏)

(我會強烈使用的問候,而不是一個巨大的switch語句的陣列建議,誠然......但這是另一碼事。)

+0

酷感謝我只是張貼我的代碼,以防萬一你想無聊:) – noel 2013-04-11 07:27:33

+0

是否有任何理由不宣佈它公開? – noel 2013-04-11 07:33:14

+0

哎呀太晚了:看到我的答案... – willome 2013-04-11 07:34:57

相關問題