学习报告
本周的实训内容,需要我们自己自学vi,java,ant和Junit的相关内容,以下为我的自学报告
vi部分
介绍
vi作为Linux系统上最基本的编辑器,是在字符模式下直接对文本进行编辑的。相对于其他编辑程序,vi没有排版功能,只是一个单纯的文本编辑器,但它有众多的指令操作。
要点
- vi有三种模式,分别是命令行模式、文本输入模式和末行模式
- 命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
- 插入模式:只有在Insert mode下,才可以做文字输入,按[ESC]键可回到命令行模式。
- 底行模式:将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。
常用的基本指令
下面罗列出了最基本的几条指令
- 进入:vi+文件名
- 插入:按insert键
- 确认修改,再次按insert键
- 保存退出:按esc键,再输入:wq即可保存退出;按:q则是不保存退出
java部分
Java语言,作为目前全世界最流行的语言之一,其重要性不言而喻
Linux下的编译指令
- 编译:javac+文件名
- 运行:java+文件名(不要加上.class后缀)
Java的特性:
- 面向对象
- 分布式
- 健壮、安全
- 可移植
- 多线程
- 动态
Java的运用
以HelloWorld为例子:
public class HelloWorld {
public static void main(String []args) {
System.out.println("Hello World");
}
}
基础语法
下面将逐步介绍如何保存、编译以及运行这个程序:
- 打开Notepad,把上面的代码添加进去;
- 把文件名保存为:HelloWorld.java;
- 打开cmd命令窗口,进入目标文件所在的位置,假设是C:\
- 在命令行窗口键入 javac HelloWorld.java 按下enter键编译代码。如果代码没有错误,cmd命令提示符会进入下一行。(假设环境变量都设置好了)。
- 再键入java HelloWorld 按下Enter键就可以运行程序了
你将会在窗口看到 Hello World
要点
- 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。
- 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
- 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
- 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
- 主方法入口:所有的Java 程序由public static void main(String []args)方法开始执行。
组件
除了基本的语法之外,Java还有一些强大的组件。像这周的作业,要求我们利用GUI组件进行计数器的设计。相关应用在程序中已经体现了。
ant部分
介绍
Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。
例子介绍
<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="run" basedir=".">
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="hello_jar" value="hello1.jar"/>
<target name="init">
<mkdir dir="${dest}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<target name="run" depends="build">
<java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>
<target name="clean">
<delete dir="${dest}" />
<delete file="${hello_jar}" />
</target>
<target name="rerun" depends="clean,run">
<ant target="clean" />
<ant target="run" />
</target>
</project>
分析
- ant其实利用target为块来进行编程,这一点有点像汇编语言
- 上面分为几个target的指令:初始化,编译,打包,运行,重新运行
- depends是先判断后面的指令是否已经执行,没有的话,先执行指令后,再回来执行这条指令
- property为声明变量,利用该变量,更改程序的时候,更改ant时也可以在文件头对路径进行修改,而无需进去文件中去查找相关代码
Junit部分
介绍
JUnit是一个Java语言的单元测试框架
JUnit是一个回归测试框架
Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。
优点
- 极限编程(在写程序之前得先考虑相关框架并写好测试程序)
- 重构
例子
源程序:
import java.util.*;
public java class HelloWorld {
String str;
public void hello() {
str = "Hello World!";
}
public String getStr() {
return str;
}
}
测试类:
import static org.junit.Assert.*;
import org.junit.Test;
public class HelloWorldTest {
public HelloWorld helloworld = new HelloWorld();
@Test
public void testHello() {
helloworld.hello();
assertEquals("Hello World!", helloworld.getStr());
}
}
分析
通过在测试类中声明了一个类,然后检查这个类给字符串赋的值知否与原计划的相等