程序不过是几行代码的集合|《Java编程思想》绪论篇

程序不过是几行代码的集合|《Java编程思想》绪论篇

1.

程序不过是几行代码的集合。就像下面这样:

public class Test {

	public static void main(String[] args) {
		System.out.println("hello world");
	}

}

对于初学编程的人来说,“hello world”的程序总是绕不开的;学习Java编程自然不能例外。说实在话,我在大学一年级(已经十九岁了)的时候学习这几行代码费了老大劲——几乎一个月都在捯饬这段代码,老师非常“贴心”地要求我们必须在记事本上敲下这段代码,并且能够在控制台通过命令使其在屏幕上打印出“hello world”,简直难得要命啊,我差一点就要放弃(好歹坚持了下来,现在可以凭Java高级工程师来混口饭吃)。认真的回忆一下,对于以上代码,我很不解的地方有下面几个:

  • 为什么class前面要有public?
  • 为什么main方法要有参数String[] args?它好像压根没起作用啊。
  • 为什么main方法必须是static void

看到这几个问题,你是不是也想迫切地知道为什么?新文化运动领袖胡适先生就曾说过这样一句话“人同畜生的分别,就在于这个‘为什么’上”,这话虽然说有点夸张,但也不失为一种积极的态度。在学习和生活当中,多问一问为什么,对我们的成长是大有帮助的,我相信,这一点,你也非常赞同。

那么现在,我来试着回答一下以上三个问题:

1)class(类)前面的public并不是必须的;但一个Java文件中有且只能有一个public类,并且该类名必须与文件名保持一致。

2)main方法的参数是一个String数组,因此约定俗成的写成String[] args的形式;尽管当前程序中并没有用到args参数,但Java编译器要求必须这么做;当然了,如果你想在程序中使用args参数,那么就可以在运行Java程序的时候在命令行中键入。

为了演示args参数的使用,我们把以上代码稍作调整:

public class Test {

	public static void main(String[] args) {
		System.out.println("hello world " + args[0]);
	}

}

命令行如下:
程序不过是几行代码的集合|《Java编程思想》绪论篇

3)static表示main方法为静态方法;可通过"类名.方法名"的方式来调用静态方法。我们来看以下代码:

public class Test {
	static int i = 0;

	public static void main(String[] args) {
		System.out.println("hello world");
		i++;

		if (i < 5) {
			Test.main(args);

		}
	}
}

通常,方法内部调用方法自身(Test.main(args)——"类名.方法名"的形式)会造成死循环,但我们使用了一个静态变量i来控制循环的次数(最多5次)。

4)void表示方法没有返回结果;既然是主方法,自然不需要返回结果,否则返回结果给谁看呢?

2.

看完以上内容,你是不是觉得信息量有点大呢?对于Java的初学者来说,我想会的,毕竟我当初都花了一个月的时间才消化掉以上内容。如果你只花了5分钟就搞定了“hello world”程序,我会感叹“老天爷啊,不公平啊,为什么我和别人的智力差距这么大呢?”

如果你是Java的初学者,那么我不建议你使用记事本一个字母一个字母敲完这段程序并在命令行中运行的,不如直接使用Eclipse,让集成开发工具来助你一臂之力。

《Java编程思想》的“绪论”篇中还有一些其他内容,但都没有这句话重要——“程序不过是几行代码的集合”。无论再庞大的项目,最终都可以拆分为几行代码——保持好这个信念非常的重要——如果你要查看他人的代码(解决bug、解析源码等等),无论他的代码成千行,还是成万行,都可以不怕!

(我花了几乎一天的时间来编写Java代码,以生成下面这张带有二维码的海报,如果大家有兴趣的话,我就把源码贴到GitHub上。)

程序不过是几行代码的集合|《Java编程思想》绪论篇