Vi, Java, Ant, Junit的自学报告

Vi, Java, Ant, Junit的自学报告

一. vi/vim编辑器学习

vi编辑器是所有Unix及Linux系统下标准的编辑器,对Unix及Linux系统的任何版本,vi编辑器是完全相同的。vim是vi的升级版,增加了一些功能,对vi命令是完全兼容的。在一些基本命令上两者应该是一样的。

vi/vim编辑器的三种模式

模式作用
命令模式控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式
插入模式文字输入或回到命令行模式
底行模式将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等
  • 命令行模式的常用操作

i:切换到输入模式
x:删除当前光标所在处的字符
:: 切换到底线命令模式

  • 插入模式的常用操作

输入所需文本即可
注:按esc可进入底行模式

  • 底行模式的常用操作

q :退出
q! :强制退出
wq :保存并退出

实例 helloworld

创建Helloworld.java

vi Helloworld.java

i切换到输入模式,输入如下代码

public class Helloworld {
	public static void main(String[] args){
		System.out.println("Helloworld!");
	}
}

esc进入底行模式,输入:wq退出并保存
在命令行中输入以下命令,即可对Helloworld编译并运行。在命令行显示:Helloworld!

javac Helloworld.java
java Helloworld

二. Java语言学习

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
由于之前并未选修Java课程,所以在Java的学习上还是费了一些功夫的,但这次的任务都是一些简单基础的,所以代码的完成相对顺利。对我来说,最大的难点是GUI。关于GUI的学习,我主要是参考了这一篇博客:添加链接描述

实例一:Helloworld

由于看到后面需要用junit对helloworld进行检测,因此进行了修改,具体代码如下

import java.util.*;
public class Helloworld{
	String str;
	public void hello(){
		str = "Helloworld!";
	}
	public String getStr(){
		return str;
	}
}

实例二:Calculator

import javax.swing.*;
import java.awt.GridLayout;
import java.awt.event.*;

public class Calculator extends JFrame{
	public Calculator() {
		JPanel panel;
		JLabel res, op, eq;
		JTextField num1, num2;
		JButton add, sub, mul, div, equal;
	
		setBounds(100, 100, 450, 200);		
		setTitle("Calculator");			
	
		// set the initial value to 0
		num1 = new JTextField("0");
		num2 = new JTextField("0");
		op = new JLabel("",JLabel.CENTER);
		eq = new JLabel("=",JLabel.CENTER);	
		res = new JLabel("",JLabel.CENTER);
	
		//set operator
		add = new JButton("+");
		sub = new JButton("-");
		mul = new JButton("*");
		div = new JButton("/");
		equal = new JButton("ok");
		
		//create the appearance
		panel = new JPanel();
		panel.setLayout(new GridLayout(2,5));
		panel.add(num1); 
		panel.add(op);
		panel.add(num2);  
	    panel.add(eq);
	    panel.add(res);
		panel.add(add);  
	    panel.add(sub);  
	    panel.add(mul);  
	    panel.add(div);
	    panel.add(equal);
	
	    //implement operation
	    add(panel);
	    ActionListener res_ = new ActionListener() {
			public void actionPerformed(ActionEvent e){
				res.setText("");
				double num_ = Double.parseDouble(num1.getText());
				double num__ = Double.parseDouble(num2.getText());
				if(op.getText().equals("+")){
					res.setText("" + (num_ + num__));
				}
				if(op.getText().equals("-")){
					res.setText("" + (num_ - num__));
				}
				if(op.getText().equals("*")){
					res.setText("" + (num_ * num__));
				}
				if(op.getText().equals("/")){
					res.setText("" + (num_ / num__));
				}
			}
		};
		ActionListener chop = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				op.setText(((JButton)e.getSource()).getText());
			}
		};
		
	    // calculate
	    add.addActionListener(chop);
	    sub.addActionListener(chop);
	    mul.addActionListener(chop);
	    div.addActionListener(chop);
		
	    equal.addActionListener(res_);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}

	public static void main(String[] args) {
		new Calculator();
	}
}

三. Ant学习

Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。

基本元素
  • project元素

    project元素是Ant构件文件的根元素,Ant构件文件至少应该包含一个project元素,否则会发生错误。在每个project元素下,可包含多个target元素。

    name属性:用于指定project元素的名称。
    default属性:用于指定project默认执行时所执行的target的名称。
    basedir属性:用于指定基路径的位置。该属性没有指定时,使用Ant的构件文件的附目录作为基准目录。

  • project元素

    project元素是Ant构件文件的根元素,Ant构件文件至少应该包含一个project元素,否则会发生错误。在每个project元素下,可包含多个target元素。接下来向读者展示一下project元素的各属性。

    name属性:用于指定project元素的名称。
    default属性:用于指定project默认执行时所执行的target的名称。
    basedir属性:用于指定基路径的位置。该属性没有指定时,使用Ant的构件文件的附目录作为基准目录。

  • property元素

    该元素可看作参量或者参数的定义,project的属性可以通过property元素来设定,也可在Ant之外设定。

    basedir:project基目录的绝对路径
    ant.file:buildfile的绝对路径
    ant.version:Ant的版本
    ant.project.name:当前指定的project的名字
    ant.java.version:Ant检测到的JDK的版本

一般来说,Ant 的构建文件默认为 build.xml,因此在Helloworld根目录下创建build.xml,具体如下

<?xml version="1.0"?>
<project name="Helloworld" default="run" basedir=".">
	<property name="test" value="test"/>
	<property name="dest" value="class"/>
	<property name="hello_jar" value="hello.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="Helloworld" classpath="${hello_jar}"/>
	</target>
</project>

完成后命令行进入Helloworld根目录,执行ant,出现BUILD SUCCESSFUL则操作成功,如下图:
在这里插入图片描述

四. Junit学习

JUint是Java编程语言的单元测试框架,用于编写和运行可重复的自动化测试。

常用注解

@Test:测试注解,标记一个方法可以作为一个测试用例 。
@Before:Before注解表示,该方法必须在类中的每个测试之前执行,以便执行某些必要的先决条件。
@BeforeClass:BeforeClass注解指出这是附着在静态方法必须执行一次并在类的所有测试之前
@After:After注释表示,该方法在每项测试后执行
@AfterClass:当需要执行所有测试在JUnit测试用例类后执行

实例:HelloworldTest

import org.junit.Test;
public class HelloworldTest{
	public Helloworld hw = new Helloworld();
		@Test
		public void testHelloworld(){
		hw.hello();
		assertEquals("Helloworld!", hw.getStr());
	}
}

当执行到这一步时,报错找不到junit.jar,在询问了同学后,新下载了一个junit4.9.jar,将其放于目录下,再进行操作。操作也有所不同,要加入run才可正常运行,具体命令行命令如下:

javac -cp .:./junit-4.9.jar HelloworldTest.java
java -cp .:./junit-4.9.jar org.junit.runner.JUnitCore HelloworldTest

当出现OK时,说明操作成功。

五. 总结与感想

阶段一的任务其实是让我们了解操作环境,基本的操作方法以及接下来的项目的初步认识。在这一部分,我遇到问题比较多的地方是环境配置和java的运用。
环境配置的问题,在改写bashrc后得到了解决。在此贴出来改的环境,提醒一下自己。
在这里插入图片描述

在过程中真的遇到挺多问题的,但在同学和Ta的帮助下,还是都一一解决了。总的来说,过程十分困难,但好在最后也都顺利完成。也了解了更多之前不知道的内容,以及一些特殊问题的解决办法。希望有了这一阶段的铺垫,以后的过程会更加顺利一些。加油鸭!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值