虽然前面的那个范例已经足够简单,但是就像俗话说的一样,万事开头难,根据我的培训经验来说,这里的错误仍然会发生,主要是以下几个方面,这里来补充说明一下。
第一,拼写,大小写,因为第一次用的是记事本,所以没有任何的代码提示,语法高亮,所以拼写错误的发生,是最常见的了。因为还没有任何Java编程基础和语法学习,所以很多不明白之处这里不详细讲解,对照源代码,仔细找不同吧。
public class 这两个单词在Java中叫做关键字,就是有特殊意义的单词,Java会对它们做区别对待,特殊处理。
public 指的是公开的,开放的。可以没有任何保留的被读取和运行。
class 指的是类。这是Java编程中最基本的代码管理单位。Java平台也靠这个单位来管理代码。Java采用面向对象的编程技术,其应用程序是由类的定义组成。
这两个合起来,就是代表这是一个公开的类,一个开放的代码单元。要注意,在一个原文件中,只允许一个public class的存在,真正的一山不容二虎。大家可以试试在源文件中再加一段public class的代码,编译时就会报错的,更不用说运行了。其他的更详细的,后面会讲解。
第二,类的名字。HelloWorld是给这个类起了一个名字。还是要注意大小写。另一个要注意的是,不要再Hello和World之间加空格隔开。这在Java里面是不允许的。没有什么道理,Sun当初发明的Java时候就这样规定了,不然就没法通过代码的编译和运行。没地儿说理去。
第三,main方法。
在代码里面,有这样一个方法:public static void main(String[] args) ,如果有其他语言编程基础的话,很好理解。它是一个方法,代表一个代码要执行的动作集合。public即这个方法是公开的,可以读取的。
static表明这是一个静态方法、可以通过类名直接调用;void表明方法不返回任何值;main是方法名称,系统会自动寻找这个名称的方法来执行;
这些概念不明白没关系,以后的内容会慢慢解释。这里只要知道一下就行了。
这里要注意的是,这个方法有点特殊,它可不是一般的方法。它是这个类运行的唯一的应用程序执行入口。当你发出java命令要运行一个类的时候,这个类里面可以有很多方法,那么先运行那个方法?Java规范就强制规定了,如果运行一个类,就会直接查找这个类中的main方法,并且它的写法必须为这个形式,不容更改。如果没有这个方法,对不起,你再写再多其他的方法,Java虚拟机一概视而不见,提示你该类没有执行入口,无法运行。
举个例子,类就好比一个大楼,main方法就好比这个楼的按照Java虚拟机邀请修建的正门入口。当你邀请Java虚拟机进入这栋大楼,Java虚拟机只会从这个标准的规范的大门进入,即使这栋楼有再多其他的侧门,安全通道口,它就当做看不见,很是执拗的。
当然,这样的入口一个类里面只能有一个。不然,Java虚拟机要晕菜了。
String[] args是方法的参数,Java虚拟机进来,给Java虚拟机准备的数据。cpu执行指令的同时,还需要知道指令要操作那些数据。这个就说到这里。
第四,括号的匹配问题。
前面说,一个源文件里面,只能有一个public 的 class,但是可以有很多不同的非public 的class,这样在一个源文件中,Java平台如何识别不同的class的范围,而不会弄混呢?
再如,我们说一个类里面只能有一个入口执行方法。那么多个类中的各自的入口执行方法,如何识别属于哪个类的范围?
再如,一个类里面有多个方法,即多个指令集合。那么如何识别每个指令集合的开始和结束?
简单说,就是怎么给一份源代码文件中的多个类,多个方法进行地盘的划分,让它们有各自独立的势力范围和相应的归属?
答案就是代码里面的{},java就是靠它来划分代码各个部分的势力范围的。既然他是划分范围的,就要有开始,有结束。不然,只有开始,那岂不是之后的内容都是归它了?如果代码里面,{}的数量不匹配,或者匹配的位置不正确的话,都是无法正确通过编译的,因为没有正确的开始结束范围,代码是无法被正确执行的。
{}匹配错误的问题,也是最常见的,特别是位置的匹配错误。