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

vi/vim编辑器

 vi和vim都是linux系统中的编辑器,不同的是,vim比较高级,可以看作vi的升级版。vi用于文本编辑,但vim更适用于coding


vim的打开文件命令
  • vim 文件路径 (打开文件进入命令模式)
  • vim 数字 文件路径 (光标移动到指定行)
  • vim +/关键词 文件路径 (高亮显示关键词)

vi/vim模式

基本上分为三种模式:

  • 命令模式(command mode)

  输入命令默认进入的模式在该模式下,我们无法对文本直接进行编辑,可以输入快捷键进行一些操作(删除行,复制粘贴等)
   操作举例:光标移动到行首(shift+6),行尾(shift+4),首行(gg),尾行(G)等等操作

  • 输入模式(Insert mode)

  在该模式可以对文本进行内容编辑,在命令模式输入i,a等进入输入模式,除esc外可以进行任何的编辑,按下esc回到命令模式

  • 底线命令模式(Last line mode)

  可以在文本的尾行对文件进行操作(搜索,替换,保存,退出等等)
  命令模式按下":"进入底线命令模式,需要退出可以按下esc

 保存文件 :w
 退出文件 :q
 保存并退出 :wq
 强制退出 :q!

更多详见vim学习资料


JAVA语言的学习

 实训云桌面已经配置好了java环境,我在自己的电脑上面配置了一下,主要是在安装JDK之后配置环境变量的时候需要注意,添加JAVA_HOME,CLASSPATH(在安装JDK的时候没有jdk-13.0.1文件夹,是自己手动新建的),然后重启计算机,编写简单的helloworld程序并且进行编译


implements和extends

 之前没有学习过Java语言,此次学习主要是针对阶段一的任务实现Calculator,如java里面的implements(实现)和extends(继承)

  • extends是继承父类(除了声明为final或者是抽象类),但是java不支持多重继承,这就用到了implements通过接口实现,implements可以实现多个接口

如:static class A extends B implements C,D{}

 多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口,接口中的方法都是抽象的


JAVA实现GUI布局

 除此之外,还学习了java swing实现ActionListener监听器的方法,使用awt,swing库进行布局,在编写计算器小程序的时候最开始使用的是流式布局,出现了一些bug,后面更改为边框布局(BorderLayout)之后成功运行
 这里我们只列举边框布局

BorderLayout是定义在AWT包中的布局管理器,将容器简单的划分为东、西、南、北、中5个区域,当使用该布局时,要指明组件添加在哪个区域。若为指明则默认加入到中间区域。每个区域只能加入一个组件,后加入的组件会覆盖前面一个。

  • 代码实现:
public static void main(String[] args) {  

     JFrame frame = new JFrame("BorderLayout");
      frame.setBounds(500, 200, 300, 300);
      frame.setLayout(new BorderLayout(10, 10));
      frame.add(new JButton("North"), BorderLayout.NORTH);
      frame.add(new JButton("East"), BorderLayout.EAST);
      frame.add(new JButton("South"), BorderLayout.SOUTH);
      frame.add(new JButton("West"), BorderLayout.WEST);
      frame.add(new JButton("center"));

 下面是我实现Calculator的结果图
在这里插入图片描述

 更多布局详解请见JAVA GUI设计几种布局讲解


ant 学习

 ant可以实现项目的自动构建和部署


ant关键元素
  • project:构成ant构件文件的根元素,每个ant文件至少包含一个project元素,每一个project元素可以包含多个target元素
    project元素属性:

name:指定名称
default:用于制动project默认执行时所执行的target名称
basedir:指定基路径的位置,没有指定的之后,ant构件文件的父目录作为基准目录

  • target:ant的基本执行单元,包含一个或多个具体的任务,多个target相互依赖关系

name:指定target名称
depends:描述target之间的依赖关系,以逗号间隔,ant会按照属性出现的顺序依次执行target,被依赖的优先执行
if:验证指定属性是否存在,不存在,target不会被执行
unless:属性不存在,target被执行
description:target功能的简短描述

  • property:可以看作是参量或者是参数,project的属性可以通过property元素来设定,也可以在ant之外设定,外部引入文件:
    property元素可用作task的属性值。在task中是通过将属性名放在${}之间,并放在task属性值的位置来实现的。

ant内置属性
  • basedir:project基目录的绝对路径;
  • ant.file:buildfile的绝对路径
  • ant.version:ant版本
  • ant.project.name:当前指定的project的名字,即前文说到的project的name属性的值;
  • ant.java.version:ant检测到的JDK的版本

ant常用任务

 copy,delete,mkdir,move,echo等等任务,详见ant工具使用

学习了通过编写简单的build.xml文件来实helloworld.java程序的编译和运行

<?xml version="1.0"?>
<project name="javac_java" default="run" basedir=".">

    <target name="clean">
       <delete dir="build"/>
    </target>

    <target name="compile" depends="clean">
       <mkdir dir="build/classes"/>
      <javac srcdir="src" destdir="build/classes"/>
    </target>

    <target name="run" depends="compile">
       <java classname="HelloWorld">
           <classpath>
              <pathelement path="build/classes"/>
           </classpath>
       </java>
    </target>
</project>

在这里插入图片描述

学习资料里面还有介绍使用ant的jar任务生成jar文件,war任务打包J2EE Web项目等等

junit 学习

  • Junit是一个Java语言的单元测试框架,可以大大降低测试代码的复杂度,简化单元测试,减小回归错误的纠错难度
  • Junit下载地址
Junit的用法

a. 编写我们需要测试的类
b. 编写测试类
c. 进行测试

  • 使用Junit测试我们编写的helloworld

在这里插入图片描述


编写测试类原则
  1. 测试方法必须使用public void 进行修饰,不能带任何的参数
  2. 新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开
  3. 测试类所在的包名应该和被测试类所在的包名保持一致
  4. 测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
  5. 测试类使用Test作为类名的后缀(不是必须)
  6. 测试方法使用test作为方法名的前缀(不是必须)

一些学习资料
如何eclipse里面进行Junit测试
如何让ant中的Junit测试


使用ant进行junit测试

 我们在原有测试build.xml里面添加Junit的target,此时我们的build.xml的内容为:

<?xml version="1.0"?>
<project name="helloworld" default="junit" basedir=".">

  <property name = "build.classes.dir" location = "build/classes"/>
  <property name = "src.dir" location = "src"/>
  <property name = "lib.dir" location = "lib"/>

  <path id="compile.path">
    <pathelement location="${lib.dir}/junit-4.9.jar" />
  </path>

   <target name="clean">
      <delete dir="build"/>
      <mkdir dir="${build.classes.dir}"/>
   </target>

   <target name="compile" depends="clean">
   <javac srcdir="${src.dir}" destdir="${build.classes.dir}" classpathref="compile.path" includeantruntime="true"/>
   </target>

   <target name="run" depends="compile">
      <java fork = "true" classname = "helloworld">
         <classpath>
           <pathelement path = "${build.classes.dir}"/>
         </classpath>
      </java>
   </target>

  <target name="junit" depends="compile">
    <junit printsummary="true">
      <classpath path="${build.classes.dir}">
        <path refid="compile.path" />
      </classpath>
      <test name="helloworldTest" />
    </junit>
  </target>
</project>

测试结果:
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值