疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java程序的基本规则


 

Java程序的基本规则
         前面已经编写了我们Java学习之旅的第一个程序,下面对这个简单的Java程序进行一些解释,解释Java程序必须满足的基本规则。
Java程序的组织形式
         Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类((class)是Java程序的最小程序单位。Java程序不允许可执行性语句、方法等成分独立存在,所有的程序部分都必须放在类定义里。
        上面的HelloWorld.java程序是一个简单的程序,但还不是最简单的Jav。程序,最简单的Jav。程序是只包含一个空类定义的程序。下面将编写一个最简单的Java程序。
              程序清单:codes/01/1-5/Test.java文件
              Clsaa Test
              {
              }
        上面代码是一个最简单的Java程序,这个程序定义了一个Test类,这个类里没有任何的类成分,是一个空类,但这个Java程序是绝对正确的,如果我们使用javac命令来编译这个程序,就知道这个程序可以通过编译,没有任何问题。
        但如果使用java命令来运行上面的Test类,则会得到如下错误提示:
                                                  Exception in thread “main” java.lang.NoSuchMethodError:main
上面的错误提示仅仅表明:这个类不能被java命令解释执行,并不表示这个类是错误的。实际上,Java解释器规定:如果类能被解释器直接解释执行,则这个类里必须包含main方法,而且main方法必须使用public static void来修饰,且main方法的形参必须是一个字符串数组(String[] args是字符串数组的形式),也就是说,main方法的写法几乎是固定的。Java解释器就从这个main方法开始解释执行,因此,main方法是Java程序的入口。至于main方法为何要采用这么“复杂”的写法,后面章节会有更详细的解释,读者现在只能把这个方法死记下来。
        对于那些不包含main方法的类,也是有用的类。对于一个大型的Java程序而言,往往只需要一个入口,也就是只有一个类包含main方法,而其他类都是用于被main方法直接或间接调用的。
Java源文件的命名规则
        1.Java程序源文件的命名不是随意的,Java文件的命名必须满足如下规则:
        2.Java程序源文件的后缀必须是Java,不能是其他文件后缀名。
        3.通常情况下,Java程序源文件的主文件名可以是任意的。但有一种情况例外:如果Java程序源代码里定义了一个public类,则该源文件的主文件名必须与该public类(也就是该类定义使用了public关键字修饰)的类名相同。
        由于Java程序源文件的文件名必须与public类的类名相同,因此,一个Java源文件里最多只能定义一个public类。
        虽然如果Java源文件里没有包含public类定义时,这个源文件的文件名可以是随意的,但笔者推荐让Java源文件的主文件名与类名相同,这可以提供更好的可读性。通常有如下三个建议:
1.一个Java源文件只定义一个类,不同的类使用不同的源文件定义。
2.将每个源文件中单独定义的类都定义成public.
3.保持Java源文件的主文件名与该源文件中定义的public类同名..
        在笔者教学中,发现很多学员经常犯一个错误,他们保存一个Java文件时,常常保存成形如*.java.txt的文件名,而且这种文件名看起来非常像是*java,这是Windows的默认设置所引起的,Windows默认会“隐藏已知文件类型的扩展名”。为了避免这个问题,通常推荐关闭Windows的“隐藏已知文件类型的扩展名”功能.
为了关闭“隐藏已知文件类型的扩展名”功能,在Windows的资源管理窗口打开“工具”菜单,然后单击“工具”菜单的“文件夹选项…”菜单项,将弹出“文件夹选项”对话框,单击该对话框里的“查看”Tab页面,看到如图1.10所示的对话框:
          如图1.10所示,去掉“取消已知文件类型的扩展名”选项之前的钩,则可以让所有文件显示真实的文件名,从而避免HelloWorld.java.txt这样的错误。
          另外,图1.10还显示了笔者勾选了“在地址栏中显示完整路径”和“在标题栏显示完整路径”两个选项,这对于开发中准确定位Java源文件也很有帮助。(摘自[疯狂JAVA讲义].李刚)