最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

软工实训:Vi,Java,Ant,Junit的自学报告

运维笔记admin47浏览0评论

软工实训:Vi,Java,Ant,Junit的自学报告

软工实训:Vi,Java,Ant,Junit的自学报告

vi/vim的学习

对vi/vim的理解

vi/vim是用来写代码的一种工具,适用于命令行。在命令行中启用vi,更新已有代码或创建新的文件。

在调用了vi之后,命令行会变成暂时的“文本编辑器”,它会对代码中的各种关键字进行高亮,加色处理,以减少程序员的错误。

vi的用法

vim有三种模式。

底线模式:

i  进入命令模式
x  删除当前字符
:   进入底线命令模式

输入模式:

在此可以对文件进行任何编辑。

底线命令模式:

q  推出,系统询问是否保存
wq 保存并推出
q!  强制退出,不保存

这里以c++的helloworld为例,演示做简单的用法。

首先,命令行到要建立文件的目录,调用vim,创建test.cpp:

然后按 i 键进入输入模式,进行代码编辑:

可以看到关键字被上色了。

编辑完成后,按 Esc 退出输入模式。

然后输入 :wq。 即切换至底线命令模式,并且wq保存退出。

此时桌面上就对了一个文件:

JAVA学习

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。

JAVA的特点

Java 语言是简单的,面向对象的,健壮的,安全的,可移植的,高性能的,多线程的,动态的。

学习JAVA

想让我在一篇博客中介绍完JAVA的基本内容,我认为是不可能的。

如果想学JAVA,请访问网站: 学习JAVA

至少我是用这个进行JAVA入门的。

因此这里只说一说马上要用到的 GUI

JAVA简单GUI

JAVA的GUI窗口布局,一般是由容器组成。
顶层容器一般就是JFrame,中层容器长用JPanel,最底层就是各种组件,比如JButton,JLabel等。

这里就简单说说可能用到的GUI

创建JFrame:

		JFrame jf=new JFrame("calculator");jf.setBounds(100,100,560,240);jf.setLayout(null);jf.setVisible(true);

创建JButton,并添加按钮事件:

			JButton jb=new JButton("JButton here");jb.setBounds(i*100,100,100,100);jb.setHorizontalAlignment(JButton.CENTER);jb.setVerticalAlignment(JButton.CENTER);  字居中jb.setFont(f);  f是字体,运用字体jf.add(jb[i]); 加到jframe中jb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.out.println("点我干嘛");}});	  为按钮添加点击事件

设置字体:

Font f=new Font("",Font.PLAIN,35); 最简单的字体,只是改变了size

我对JAVA的体会

JAVA对C++的掌握者非常友好,两者在语言表达上非常相似。同样在运行效率上,java也是和c++较为接近的。

JAVA语言对编写者来说,最大的优点是方便快捷,JAVA有着非常丰富的函数库,比如许多数据结构都定义了toString。
还有,在c++中类型转换是一件比较麻烦的事,而在JAVA中这很方便。
比如:

Float.parseFloat(); 将字符串转换成float
float f=2.5; 
String s= f+ ""; 浮点型加上空串就是字符。(如果是整数,后面有.0)

JAVA对封装的概念体现的非常完美。JAVA就是一个由类构成的语言,所有的函数,变量一般都是包含在类里面的。这样程序的结构会变得非常清晰。

ant学习

啥叫ant?

ant是一个构建工具,常常用于java的编译。我们可以形象地把ant理解为 java的gcc。而ant运行所依照的文件build.xml,则非常类似于c++的makefile。会写makefile的人学习ant将会非常容易。

下面来走一下自学流程:

用ant编译hello world

首先创建java的helloworld文件:

然后编写build.xml:

稍作解释:用 把内容括起来,一般一个文件中只有一个project。

有name和depends两个重要属性。name为目标名,depends为依赖目标的名字,如果依赖目标未完成,则先执行依赖目标。
name是用来识别目标的,比如指令 ant init, ant build后面的init,build等就是target名。
在内的是目标需要执行的代码,可以在里面创建文件夹,进行java编译等。

<mkdir dir="folder" />
<javac srcdir="." destdir="." />

然后执行 ant build,看到:

然后就生成了新的.class文件

Junit学习

什么是 JUnit?

JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。

JUnit 促进了“先测试后编码”的理念,强调建立测试数据的一段代码,可以先测试,然后再应用。这个方法就好比“测试一点,编码一点,测试一点,编码一点……”,增加了程序员的产量和程序的稳定性,可以减少程序员的压力和花费在排错上的时间。

junit特点:

JUnit 是一个开放的资源框架,用于编写和运行测试。
提供注释来识别测试方法。
提供断言来测试预期结果。
提供测试运行来运行测试。
JUnit 测试允许你编写代码更快,并能提高质量。
JUnit 优雅简洁。没那么复杂,花费时间较少。
JUnit 测试可以自动运行并且检查自身结果并提供即时反馈。所以也没有必要人工梳理测试结果的报告。
JUnit 测试可以被组织为测试套件,包含测试用例,甚至其他的测试套件。
JUnit 在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色。

用junit测试helloworld

创建JAVA项目。

导入包:

右键项目,点击properties,在出现的窗口中按下图点击。点Add Library,就可以添加JUnit了。

建立三个JAVA class,用于测试helloworld。

hello:用于存储helloworld字符串,以便测试:

package hellotest;public class hello{public String msg;public hello(String s){msg=s;}public String printMsg(){System.out.println(msg);return msg;}
}

helloTest:用于调用assertEquals等断言,判断运行时是否产生错误。

package hellotest;import org.junit.Test;
import static org.junit.Assert.assertEquals;public class helloTest{public String msg;public hello h;@Testpublic void testPrintMessage(){msg="Hello World!";h=new hello(msg);//msg="jkjk";  故意犯错assertEquals(msg,h.printMsg());}
}

testRunner:用于调用helloTest,让测试跑起来,main函数也在此。testRunner也负责打印错误信息和最终结果。

package hellotest;import org.junit.runner.*;
import org.junit.runner.notification.*;public class testRunner{public static void main(String[] args){Result res=JUnitCore.runClasses(helloTest.class);for (Failure fai :res.getFailures()){System.out.println(fai.toString());}System.out.println(res.wasSuccessful());}
}

运行结果:

如果做点手脚,改变一些变量,故意犯错
则结果如下:

总结

vi用来编写代码。
java是一门非常方便快捷的语言,内部提供了非常丰富的函数库,让使用者很方便,且java的设计相比c++牺牲了一点运行速率,但是换来了更多的稳定性和健壮性。
ANT就相当于c++编译用的make,build.xml就可以认为是makefile。其结构,思路,组成都非常相似。ant用于构建Java项目,当项目庞大时需要手动写build.xml,可以让项目更合理的生成。
JUnit是用来测试程序的,还会返回错误信息,测试大样例时可以考虑使用。

发布评论

评论列表(0)

  1. 暂无评论