中级实训自学报告
关于vim、Java、Ant、Junit的自学报告:
- Vim
- Java
- Ant
- Junit
Vim
Vim编辑器作为vi的升级版本,不仅完全兼容vi的所有指令,还加入了许多新的特性,实际上我在虚拟机中经常使用的编辑器除了sublime之外就是vim了,vim功能强大,但是却需要了解许多指令以及配置。
如何编辑文件:
当我们使用vim来编辑文件,如vim hello.java时,首先进入的是命令行模式,此时是不能直接编辑文件的,要按下i来进入插入模式,值得一提的是,用i来进入是从光标当前位置开始输入,而用a和o来进入分别是从下一个位置和插入新行,从行首开始输入
如何保存/退出编辑文件:
在插入模式下先按ESC,就可以回到命令行模式,此时输入:w或者:w!就可以保存文件,输入:q或者:q!退出编辑,输入:wq!或者wq保存 并退出。至于加不加!的区别,加了!之后有强制性的意思,如wq!可以强制写入,忽略文件的只读属性
如何在vim里面复制粘贴:
在命令行模式下按v就可进入字符选择模式,此时可以利用h(左),l(右),j(下),k(上)来移动选择要复制的内容,如图所示:
当选好后按下y就完成复制,再按下p就可以完成粘贴了
对Vim进行简单配置:
刚装好的vim真的很难用,但我们可以通过修改它的配置让它更方便使用:在终端使用sudo vim /etc/vim/vimrc来对vim的配置文件进行编辑,我的配置如下:
设置语法高亮
set nu显示行号
set tabstop=2 tab长度设置为2
set nobackup保存文件时不进行备份
set ruler右下角显示光标位置的状态行
set mouse=a使vim编辑支持鼠标操作
set showmatch括号自动补全
其实也是很简单的配置
值得一提的是,在vim支持鼠标操作后,复制粘贴就很容易了:用鼠标选中要复制的字符串,再到要粘贴的光标处按下鼠标滚轮,即可完成粘贴
Java
要使用java,首先得安装JDK(Java开发的核心,它包括Java的运行环境(JVM+Java系统类库)和Java工具),并配置环境变量,这个教程网上有很多
首先编写最简单的helloworld,Java与C++都是面向对象语言,Java是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术,因此可以发现main函数写在了helloworld这个类里面:
另外,Java中main函数的参数String[] argv是必须写的,这与C++不同。在之前我使用eclipse编写Java程序时可以通过Run Configuration输入这个参数的值,本次实训中我用的命令行来编写Java程序,要在命令行中输入参数,如下所示
传递参数的命令 java Test args[0] args[1 ] args[2 ] ……
Calculator小程序
关于Calculator小程序,实际上就是一个简单的Java GUI设计,下面的+-*/=可以用5个按钮JButton来制作,它支持事件监听;要支持输入的操作数可以用JTextField来制作;要显示的另外3个部分都可以用JLabel来实现。
它们三者都可以用setText()函数来设置显示的内容,用getText()来获取显示的内容。
这个程序的关键在于给Button设置事件监听并处理事件。
关于各种语法的记录:
addActionListener()给JButton设置监听器
actionPerformed(ActionEvent e)处理事件,在点击button时触发,可在此函数中通过e.getSource()获取点击的button
public class Calculator extends JFrame implements ActionListener{}表示Calculator类继承JFrame类并实现ActionListener接口,JFrame是GUI的基础,Calculator类继承它后就成为一个窗体,可以设置窗体的各种控件、属性
setBorder()可以给控件JLabel设置标签
setLayout(2,5,5,5)设置窗体布局,Grid布局为网格布局,此处参数代表2行5列,行列间距都为5,控件从左往右,从上往下排列
setSize()和setLocation()分别设置窗体大小和初始显示位置
运行结果
Ant
Ant是一种基于Java的build工具,它可以实现项目的自动构建与部署功能,我感觉它类似于去年初级实训学习的makefile工具。安装和配置环境变量方法在github上已经给出详细说明。
Ant的关键文件是build.xml(默认名称),在执行ant命令时,默认会去寻找build.xml文件,按照该文件来进行构建和部署。
Ant的关键元素
project project元素是Ant构件文件的根元素,每个Ant构件文件至少应包含一个project文件,每个project元素可包含多个target元素。
它的属性有:name(设置project元素名称)、default(指定Ant默认执行的target的名称)、basedir(指定基路径位置,一般用 “.” ,即当前目录)target target元素是Ant的基本执行单元,它可以包含一个或者多个任务,每个target之间可以有相互依赖关系
它的属性有:name、depends(描述target之间的依赖关系,当要依赖多个target时,用 , 来间隔target名称,并依照depends中target出现的顺序依次执行每个target)、if(验证指定属性是否存在,存在则target执行)、unless(作用与if相反)、descriptionproperty property属性类似于变量的定义,可以通过它来定义之后要用到的属性值,如
可以在之后通过${name}来获得“amigo”这个值
用Ant来编译运行Java程序
对于之前写的helloworld程序,可以通过ant命令来一键编译运行,build.xml如下:
每个target的作用:
build用来编译helloworld.java文件,生成的helloworld.class文件放入classes文件夹
run用来运行helloworld,它依赖于clean和build,在执行run之前要先运行clean和build,classpath指定helloworld.class的路径
jar用来生成jar包,jar文件是一种封装,将要引用的通用类打包便于管理,当然helloworld例子中并不需要
clean用来删除编译生成的helloworld.class文件
写好之后就可以在终端输入ant run或者ant(build.xml中设置了默认执行run)就可以运行helloworld了
Junit
Junit是Java的单元测试,可以针对一个独立的工作单元(通常指一个方法)来进行正确性验证,即对Java程序的一个方法进行测试
首先编写一个HelloWorld类和一个HelloWorldTest测试类
把这两个java文件放在同一目录下,可以用junit来进行测试。为了更方便地使用junit,可以先配置junit的环境变量,参考github:
在配置好环境后,就可以使用了:
@Test 注释表示该方法为测试方法,即本例中的TestHello,该方法用public void修饰
用Ant和Junit来测试HelloWorld:
新建项目文件夹,将.java文件放入src文件夹,在项目文件夹里编写build.xml,如下所示:
在此处只列出了关键部分,可以看到,在javac中我增加了对HelloWorldTest.java和junit-4.9.jar的include,实际上这是为了同时编译两个.java文件,并引用要用到的junit-4.9.jar中的类
在run中我增加了junit测试,printsummary设为true可以打印出junit得到的信息,classpath指定要用到的.class所在路径;而使用java来运行的写法也与之前有了很大不同,classname值变为了”org.junit.runner.JunitCore”,HelloWorld变成了java命令的参数。
运行结果:
可看到junit和java的运行结果