Java编程入门(2.1): 基础Java的应用程序

可以通过计算机执行一系列指令组成的任务就是程序。程序必须使用编程语言编写。也就是计算机运行任何指令都必须按照计算机可以使用的方式编写。

因此,要做一个成功的程序员,你必须对你使用的编程语言的语法有详细的了解。然而,语法只是一部分,对于写一个可以运行并且返回正确结果的程序而言并不足够!此外,程序的含义必须正确。程序的含义被称为语义。更准确的说,编程语言的语义是指决定使用这个语言所编写的程序含义的一系列规则。一个语义正确的程序可以完成你希望它完成的功能。

进一步说,一个语法和语义正确的程序可能依然是一个很糟糕的程序。正确使用语言和很好的使用语言是不一样的。例如,好的程序是有“风格”的。它的写作方法使得人们可以很简单的阅读和理解。它会依循其它程序员熟悉的惯例。并且它有一个整体设计使得人们可以读得其意。计算机完全不在意这种设计,但对人类读者,是很重要的。编程的这些方面通常被称为语用(我通常会使用更通用的术语:风格。)

引进一个新的语言特性时,一般会解释这个特性的语法、语义和一些语用。所以你得记住语法,这是简单的部分。然后你得通过给出的例子意会语义,确保你理解它们的使用方式,更理想一点,可以自己写一些短程序来检测你的理解。然后你得尝试着欣赏和吸收语用——这意味着如何很好的使用语言特性,有了风格会为你赢得其他程序员的钦佩。

当然,即使你已经对语言的每一个特性都很熟悉了,也不意味着你就是一个程序员了。你还得学习如何构建复杂的程序解决特定的问题。要实现这个,你需要经验和审美。你会在本书中发现一些软件开发的小贴士。

我们使用一个非常传统的问题来作为探究Java的开端:写一个显示“Hello World!”这一信息的程序。这听起来很微不足道,不过这么做确实是学习新的编程语言的一大步(特别是学习人生第一个编程语言的时候)。这意味着你理解了以下这些基本步骤:

学会计算机文本程序,

编译程序,并且

执行编译后的程序。

第一次过程中,以上每一步都可能需要经过几次试错。我不会在此详解如果实现每一步的细节;它取决于特定的计算机和你使用的Java编程环境。在Java中,程序被编译成Java字节码,而不是机器语言。最终,你可以使用适当的命令来运行这个编译后的程序。对Java而言,你实际上是使用解释器来执行Java字节码。你的编程环境可能会为你自动执行一些步骤——例如,编译步骤通常是自动的——但是可以肯定的是这三个步骤在后台一定是都被执行了的。

下文是一个显示“Hello World!”信息的Java程序。不要期望完全了解这个程序的每一句话;其中有一些会在之后的几个章节中介绍:

/** A program to display the message

*  "Hello World!" on standard output.

*/

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World!");

}

}   // end of class HelloWorld

实际打印信息的指令是下面这句:

System.out.println("Hello World!");

这个指令是一个子程序调用语句的例子。它使用了一个叫做System.out.println的“内置子程序”来实现功能。回想一下,子程序是指将一系列执行指令组合在一起并赋予一个名字的指令集合。这个名字可以在需要执行这个指令集合的时候使用,以调用这个子程序。一个内直子程序是已经被定义好的作为语言的一部分的存在,因此在任何程序中都自动可用。

当你执行这个程序的时候,信息“Hello World!”(不包括引号)会被显示在标准输出中。不幸的是,我不能准确的表述这句话。Java是为了运行在许多不同的平台而设计的,而标准输出在不同的平台意味着不同的东西。但是,你可以期待消息出现在一些方便或不方便的地方。(如果你是用命令行接口,就好像Oracle的Java开发包里的那样,你输入一个指令告诉计算机执行程序。计算机会将程序的输出结果:Hello World! 输出到下一行中。在一个类似于Eclipse这样的集成开发环境中,输出可能会出现在环境的某一个窗口中。)

你一定对上面那个程序的其它部分也很好奇。它其中一部分是由注释组成的。程序中的注释会全部被计算机忽视;它们是为了人类阅读而存在。这并不意味着它们不重要。程序不止要给电脑读,也要给人读,没有注释的话,程序就很难被理解。Java有两种注释形式。第一种是使用//开头,延伸到一行的结束。也就是上面那个程序的最后一行的注释形式。计算机会无视//以及之后的同一行的所有内容。第二种是使用/*开头,使用*/结尾,它可以扩展到多行。上面的程序的前三行就是这第二种注释的实例。(实例中的注释实际上是使用/**开头的,它是有特殊含义的;它是“制作文档”(Javadoc)注释,被用来生成程序文档。

该程序的其它部分需要遵循Java语法规则。Java的所有程序都必须写在“类”(Class)里面。上面那个程序的第一行(注释除外)意思是这是个叫做HelloWorld的类。“HelloWorld”既是这个类的名字,也是这个程序的名字。并不是每个类都是一个程序。为了定义一个程序,一个类必须包含一个叫做main的子程序,使用以下这种形式:

public static void main(String[] args) {

statements

}

当你让Java解释器运行程序时,解释器会调用这个main()子程序,执行它包含的所有语句。这些语句组成了一个脚本,告诉计算机当程序执行的时候实际上应该运行哪些东西。main()子程序可以调用定义在同一个类甚至定义在其它类中的其它子程序,但是main()子程序决定其它子程序的调用方法和调用顺序。

main()的第一行的单词“public”的意思是这个程序可以被程序外部所调用。这点至关重要,因为main()程序是被Java解释器调用的,它是程序外部的。第一行的剩下部分现在更难以解释。目前,就把它们当做必须的语法吧。子程序的定义——也就是用来说明它做了什么的指令——组成了“语句”序列,包含在花括号{和}里。这里,我是用了statements作为实际组成程序的语句的占位符。在整本书中,我将始终使用类似的格式:任何这种格式(绿色粗体)都是用来描述某种你需要在实际程序中输入的内容的占位符。

按照上文所提及的,子程序不能独自存在。它必须是类的一部分。一个定义有公共类的程序有着如下的格式:

public class program-name {

optional-variable-declarations-and-subroutines

public static void main(String[] args) {

statements

}

optional-variable-declarations-and-subroutines

}

第一行的名字是这个程序的名字,也是这个类的名字。(请再次记住,这个program-name 是实际名字的占位符!)

如果这个类的名字叫HelloWorld,那么这个类就必须被保存在一个叫做HelloWorld.java的文件里。当这个文件被编译后,会生成另一个叫做HelloWorld.class的类文件。这个叫HelloWorld.class的类文件包含程序被编译后形成的Java字节码,可以被Java解释器执行。HelloWorld.java被称为这个程序的源代码。如果要执行这个程序,你只需要编译类文件,而不需要源代码。

这章的程序的布局,例如空白行和缩进,并不是这个语言的语法或语义的一部分。计算机不在乎布局——你可以把整个程序写在一行里,只要你乐意。但是,布局对于人们阅读很重要,有一些布局风格是被大多数程序员所遵循的。

还要注意,根据上面的语法定义,程序可以包含其它除了main()以外的子程序,又被称作“变量声明”。

亲爱的JAVA初学者酱们: 学习有困难或者想获取JAVA资料请点击链接加入Java学习部落Q群 457924957学习。

​学习免费Java课程知识,点击链接加入群【Java学习部落】:学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,602评论 18 399
  • 是谁说,现在你的气质里藏着过去你读过的书和走过的路。 《孤独是一座岛》讲诉的是中国籍生物学博士唐清沅在孤岛上邂逅了...
    释慕散阅读 393评论 1 0
  • ~ ~
    laoqin阅读 328评论 0 0
  • 生活从来都不容易啊,当你觉得挺容易的时候,一定是有人在替你承担属于你的那份不容易 。
    闪烁ing阅读 128评论 0 0