上一篇文章介绍了Java工程的帝国区划,末尾给出了一段Java代码例子,这个代码虽然勉强能看懂,但是有些细节令人不甚了了。比如说“// 参观朱雀台”为何能够直接跟在当前行后面?“System.out.println”又为何被点号绕了三道湾?显然这里面必定有一些规则需要遵守,好比到了一个国家就要入乡随俗,为了方便游客更好更快地适应当地的风俗,Java帝国特别设立了几个特殊官职,专门负责对内对外打交道的事情。其中有几个官吏经常露面,尤其需要初学者注意,他们是:翻译官、太史公、贸易官,接下来分别介绍如何与它们打招呼。

翻译官

Java代码其实由一行一行的符号组成,跟通俗易懂的自然语言没法比,因为Java只是一种计算机编程的高级语言,它的代码逻辑是给电脑看的,不是给普通人看的,所以初学者不要指望马上就能看懂Java代码。到了异国他乡,面对周围的鸟语叽喳,啥都听不懂可不是办法,最好能找个翻译,把这群老外说的鸟语翻译成你我熟知的母语,这样才好待下来学习和生活。Java帝国里面也有类似的翻译官,大名叫做“注释”,意思就是在代码里添加一行或者一段说明性的文字,这些说明文字对程序运行不起任何作用,仅仅是方便初学者理解Java代码的功能作用。

像前面代码里面的“// 参观朱雀台”,开头的两个双斜杆“//”便是注释的标记符号,它表示当前行在双斜杆之后的内容都属于注释文字,可以随便写开发者的母语文本,反正不会影响Java程序的编译和运行。双斜杆的注释规则有两条,其一为:它只注释后面的文字,不注释前面的文字;其二为:它只对当前行有效,对上一行和下一行都是无效的。因此,如果要添加多行的说明文字,就得在每行文字开头都加上双斜杆符号。下面是给Java代码添加多行注释的例子:

// 先参观朱雀台

// 再参观金虎台

// 最后参观冰井台

然而每行文字前面都要开发者手工输入双斜杆,实在是有点兴师动众,为减少开发者的工作量,有两个办法可以避免重复的手工输入。第一个办法,先用鼠标选中需要注释的数行文本,再依次选择Eclipse顶部菜单的“Source”→“Toogle Comment”,此时Eclipse瞬间在这几行文字开头都加上了双斜杆。第二个办法,是采用Java代码的多行注释标记,这个多行注释,需要一个标记头和一个标记尾,那么夹在头尾标记中间的文字,即为被注释了的文本内容了。所谓的标记头,由符号“/*”组成,而标记尾则由符号“*/”组成,二者之间可以有单行文字,也可以有多行文字。如果头尾标记包括注释文字都在同一行,那么该行的完整注释形如“/* 这里是注释文字 */”。如果头尾标记连同注释文字分散成多行排列,那么完整的多行注释格式是下面这种形式:

/* 先参观朱雀台

再参观金虎台

最后参观冰井台 */

注释标记与说明文本之间的空格没有实际意义,仅仅是看过去显得不那么拥挤罢了。由于双斜杆表达的注释一般言简意赅,不会太啰嗦,因此本系列的文章主要采取双斜杆对说明文字加以注释。

太史公

程序员写完代码之后,运行程序之时经常要检查运行过程是否符合预期,这就要求程序能够自动汇报运行情况,以便开发者事后分析整个运行过程的经过。或者说,小到一个人每天写日记,大到一个国家编史书,总之该工作好比史官(又称太史公)辛勤地记载各类史实,计算机程序的史料学名就称作“日志”。程序把自身的运行信息输出到控制台(Console窗口)或者输出到文件中,便构成了程序的运行日志。最简单的日志输出代码如下所示:

System.out.println("欢迎来到魏国的都城——邺城。");

从以上代码可见,输出日志的方法是“System.out.println”,最前面的System表示这里在进行系统操作,中间的out表示向控制台输出信息;最后面的println表示打印括号内的文本,并跳到下面一行,末尾的ln是line的缩写。如果把最后面的println改成print,那么打印完括号内的文本之后,当前定位在该行文本的末尾,而不会跳到下一行的开头。下面演示看看println和print区别,先用System.out.println打印两句话,代码示例如下:

System.out.println("欢迎来到魏国的都城——邺城。");

System.out.println("这里是邺城的正南门——凤阳门。");

此时控制台输出的日志信息如下图所示:

再用System.out.print打印同样的两句话,代码示例如下:

System.out.print("欢迎来到魏国的都城——邺城。");

System.out.print("这里是邺城的正南门——凤阳门。");

此时控制台输出的日志信息如下图所示:

由此可见,通过println打印的日志内容是分行显示的,而通过print打印的日志都显示在同一行。

既然调用System.out可以往控制台输出日志,那么反过来,调用System.in也可以从控制台向程序输入信息。只不过输入文字的接收要分以下两个步骤:

1、创建一个控制台的扫描器,随时盯着控制台的输入操作,扫描器的创建代码如下所示:

Scanner scan = new Scanner(System.in); // 从控制台接收输入文本

2、通过扫描器的nextLine方法获得一行输入文字,按下回车键表示该行文字输入完毕。

下面举个从控制台获取输入信息的例子,曹操任命张辽镇守合肥,而孙权亲率大军进攻合肥,张辽在逍遥津之战中杀得东吴众将丢盔弃甲。现在往控制台输入向张辽挑战的吴国将领姓名,看看都有谁前来应战,完整的代码示例如下:

package com.donghan.huainan.hefei; // 东汉帝国淮南郡合肥县

import java.util.Scanner;

public class Hefei {

public static void main(String[] args) {

System.out.print("这里是张辽镇守的合肥城,吴国谁来挑战?");

Scanner scan = new Scanner(System.in); // 从控制台接收输入文本

/* nextLine方法表示接收一行文字,以回车键结尾 */

System.out.println("吴国前来挑战的将领是:"+scan.nextLine());

}

}

接着通过右键菜单“Run As”→“Java Application”运行Hefei程序,并在控制台敲入“甘宁”,然后按下回车键。键盘输入前后的控制台截图如下所示,可见程序成功读取到了控制台的输入文字。

贸易官

帝国物产丰盈,各地都有闻名遐迩的土特产,比如曹操南征宛城张绣,结果反遭张绣暗算,致使大将典韦阵亡,这个宛城便是汉代最大的冶铁中心。此外,蜀汉的成都平原盛产蜀锦,而东吴的景德镇则盛产陶瓷。既然各地出产多种多样,不妨互通有无,大家做个贸易,你卖你的,我卖我的,各取所需,皆大欢喜。这个进出口贸易,就由专门的贸易官来掌管。贸易官既负责出口商品,也负责进口商品。对于出口贸易来说,需要区分哪些地方是对外开放城市,又有哪些货物是允许出口的普通商品。

对外开放在Java代码中使用关键字public来表达,凡是被public前缀修饰了的城池,都是对外开放城市,凡是被public前缀修饰了的东西,都是允许出口的货物。譬如下面的代码例子,指定了宛城是座对外开放城市,并且当地出产的铁器也是可供出口的货物。

package com.donghan.nanyang.wanxian; // 东汉帝国南阳郡宛县

public class Wancheng {

public static void getIron() {

System.out.println("从宛城得到了一大批的铸铁兵器。");

}

public static void main(String[] args) {

System.out.println("欢迎来到大汉的冶铁中心——宛城。");

}

}

现在其它地方想要进口宛城的铁器,就得通过贸易官开展进口贸易。贸易官首先通过关键字import说明将要从某地进口商品,就像如下代码这般表示:

import com.donghan.nanyang.wanxian.Wancheng; // 准备从宛城进口商品

然后在具体运行的代码段中添加来自Wancheng(宛城)的贸易进口代码。再举个例子,想当年关羽大举北伐,消息传到襄阳,曹军主将曹仁赶忙从宛城进口了一批铁质兵器,意图加强军备抵抗蜀军。这样的话,Xiangyang(襄阳)这个地方,需要声明import(进口)来自Wancheng(宛城)的铁器。于是完整的Xiangyang城代码如下所示:

package com.donghan.nanjun.xiangyang; // 东汉帝国南郡襄阳县

import com.donghan.nanyang.wanxian.Wancheng; // 准备从宛城进口商品

public class Xiangyang {

public static void main(String[] args) {

System.out.println("这里是华夏第一城池——襄阳城。");

Wancheng.getIron(); // 开展从宛城进口铁器的贸易

}

}

最后仍旧通过右键菜单“Run As”→“Java Application”运行Xiangyang程序,程序运行结果如下图所示。

可见Wancheng(宛城)的铁器被进口到了Xiangyang(襄阳),用编程的专业术语来说,是Xiangyang这个类调用了Wancheng那个类的getIron方法。

JAVA翻译官_Java开发笔记(三)Java帝国的特种官吏相关推荐

  1. JAVA翻译官_Java学习笔记之——Java介绍

    1.Java体系: JavaSE:标准版,其他两个体系的基础 JavaEE:企业版 JavaME:微型版,适用于消费类型的微型设备 2.Java三大特性:封装.继承.多态 3.Java的特点:面向对象 ...

  2. java日期类型_Java 学习笔记 (三) Java 日期类型

    以下内容摘自:  https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...

  3. JAVA翻译官_java的一些基础知识(一)

    一.java概述 这部分主要谈到java的开发或运行,开发环境的搭建,环境变量的配置,编译执行的命令基本知识: 1.java的三种技术架构: javaSE:java Platform Standard ...

  4. java swing对话框_Java开发笔记(一百三十五)Swing的文件对话框

    除了常规的提示对话框,还有一种对话框也很常见,它叫做文件对话框.文件对话框又分为两小类:打开文件的对话框.保存文件的对话框,但在Swing中它们都用类型JFileChooser来表达.下面是JFile ...

  5. java文本输入框_Java开发笔记(一百三十九)JavaFX的输入框

    循着Swing的旧例,JavaFX仍然提供了三种文本输入框,分别是单行输入框TextField.密码输入框PasswordField.多行输入框TextArea.这些输入框都由抽象类TextInput ...

  6. java 流式_Java开发笔记(七十二)Java8新增的流式处理

    通过前面几篇文章的学习,大家应能掌握几种容器类型的常见用法,对于简单的增删改和遍历操作,各容器实例都提供了相应的处理方法,对于实际开发中频繁使用的清单List,还能利用Arrays工具的asList方 ...

  7. java runnable 启动_Java开发笔记(九十七)利用Runnable启动线程

    前面介绍了线程的基本用法,按理说足够一般的场合使用了,只是每次开辟新线程,都得单独定义专门的线程类,着实开销不小.注意到新线程内部真正需要开发者重写的仅有run方法,其实就是一段代码块,分线程启动之后 ...

  8. java 文件缓冲区_Java开发笔记(八十六)通过缓冲区读写文件

    前面介绍了利用文件写入器和文件读取器来读写文件,因为FileWriter与FileReader读写的数据以字符为单位,所以这种读写文件的方式被称作"字符流I/O",其中字母I代表输 ...

  9. java 类型检查_Java开发笔记(五十二)对象的类型检查

    前面介绍了类的多态性,来自于鸡类的实例chicken,既能用来表达公鸡实例,也能用来表达母鸡实例.可是这导致了一个问题,假如在call方法内部需要手工判断输入参数属于公鸡实例还是母鸡实例,那该如何是好 ...

最新文章

  1. 从复旦博士生到985高校副教授,贫穷使人深知摆脱自卑的艰难
  2. Navicat Premium 12连接Oracle时提示oracle library is not loaded的问题解决
  3. Codeforces Beta Round #6 (Div. 2)【未完结】
  4. DriveInfo类取得计算机的磁盘信息
  5. type=file文件上传H5新特性
  6. 百安俱乐部关于“BotNet专题讨论”资料
  7. 两个fetion飞信API
  8. THINKPHP_关联模型MANY_TO_MANY
  9. Android Material文本字段
  10. 建议推出专门用于开发的电脑
  11. 管家婆财贸双全TOP系列服务器,管家婆财贸双全II
  12. 键盘 计算机代码,键盘钩子示例
  13. dnf连不上服务器删什么文件,DNF客户端又出问题?其实是这个文件惹的祸,删除就好了!...
  14. Vue 项目(网站应用)接入QQ互联qq登录接口 汇总
  15. 企业发文的红头文件_实例分享:怎样制作双发文单位红头文件,文件二字与发文单位并排...
  16. FC6000蒸汽气体热水液体智能流量积算仪特点
  17. 计算机控制系统总线,计算机控制系统功能之现场总线控制-电脑自学网
  18. 360度领导能力全方位测试
  19. 量化投资作业的R实现——收益率相关图形绘制
  20. 机器学习(线性回归实训)------波士顿房价

热门文章

  1. 微信小程序 php配置,微信小程序的配置
  2. 树莓派 触摸屏_如何用树莓派搭建一个颗粒物(PM2.5)传感器
  3. android限制输入字符的范围,Android EditText 对输入字数和内容范围进行限制
  4. java 并发编程多线程_多线程(一)java并发编程基础知识
  5. 【RK3399Pro学习笔记】五、ROS与USB摄像头
  6. 前端学习(3295):react生命周期
  7. 前端学习(3204):复习类相关知识2
  8. 前端学习(3061):vue+element今日头条管理-接口分页参数说明
  9. [vue] 在子组件中怎么访问到父组件的实例?
  10. 前端学习(2877):原生js模块化+绘制弹幕与动画video联动