2013-04-11 36 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

相关问题