Vim简介
Vim是一款上古编辑器,被广大程序员成为编辑器之神,这与之强大的编辑功能和编辑效率是分不开的。和Emace一样都在代码行业享有盛誉。vim最为重要的一点就是一切操作几乎可以舍弃鼠标,熟悉了vim命令的话,光靠键盘指令可以使开发效率迅速提高。
Vim的安装
Linux下
在Ubuntu平台下控制台敲入下列指令即可自动安装。
sudo apt-get install vim
Windows下
去官网 直接下载使用。
Vim常用指令和教程
首先值得注意的一点就是其实vim是自带教程的Vimtutor,s使用方法是linux下输入命令vimtutor,即可开启教程,这属于官方教程, 最为详细,没有之一。
在这里介绍一些常用的vim命令,有利于快速上手vim。
1. 创建或打开文件 vim filename
vim helloworld.java
2.添加内容
一开始进入处于正常模式在编辑窗口直接输入i,a,o
等字符可以进入输入模式,可以在屏幕下方看到insert单词。按左上角Esc
键可以回到正常模式,使用各种方便的指令。以下指令均在正常模式下进行。
3.删除内容
dd
可以删除光标所在的一整行。
ndd
可以删除光标以下的n行
4. 复制内容
yy
可以复制光标所在行的字符nyy
可以复制光标以下的n行字符
5.粘贴内容
p/P
作用时粘贴字符,小写p将已复制的字符粘贴到光标以下,大写P将字符粘贴到光标以上。
6. 撤销内容
撤销指令使用u
,类似于windows上的ctrl z`
。
7. 保存文件
先进入正常模式Esc
,然后输入:
。然后输入:
q
离开vimw
保存内容wq
保存内容并离开vim,回到命令行
其他还有许多可以提高效率的指令在这里就不多赘述啦。
Java知识入门
###初探java
从hello world入门, 初步体会java这一门面向对象编程语言。在HelloWorld.java文件中键入以下代码。(注意文件名称必须和类名一致)
1 | public class HelloWorld { |
其中用到的编译指令是
javac HelloWorld.java
命令行没有弹出其他消息,即为编译成功。
执行指令是
java HelloWorld
这里用到两个重要指令javac
java
,分别是编译和执行指令。
###基础知识
由于已经学习过C++,java语言在一定程度上和C++是类似的,所以在Java入门学习上可以直接跳过基础语法,对象和类,基本数据类型,运算符,循环结构,分支结构。
Java面向对象
java继承
java继承的概念和C++类似,同样是定义一个父类,然后定义一个子类,来继承父类的属性,和C++不同的是,java用关键字extends
来表示继承关系。继承格式是
1 | class 父类 { |
####继承的特性
子类拥有父类非private的属性,方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性。
提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。
####继承的关键字
关键字 | 作用 |
---|---|
extends | 单一继承 |
implements | 继承多个父类 |
super | 实现对父类父类成员的访问,引用父类 |
this | 指向自己的引用 |
final | 将自身定义为不可继承的类 |
java重写和重载
重写
#####重写含义
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。。
重写方法的原则
- 参数列表必须完全与被重写方法的相同;
- 返回类型必须完全与被重写方法的返回类型相同;
- 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
- 父类的成员方法只能被它的子类重写。
- 声明为final的方法不能被重写。
- 声明为static的方法不能被重写,但是能够被再次声明。
- 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
- 子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
代码实例
1 | class Animal{ |
运行的结果是
狗可以跑和走
可以看到在Dog类中重写了move()方法,传入的参数和返回类型和原来父类的方法一致,但内部代码可以修改。
####重载
#####重载含义
重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
重载的规则
- 被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
- 被重载的方法可以改变返回类型;
- 被重载的方法可以改变访问修饰符;
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 无法以返回值类型作为重载函数的区分标准。
代码实例
1 | public class Overloading { |
运行结果是
test1
test2
test3
test4
从运行结果看,调用的传参不同的函数顺序执行。
多态
多态就是对象多种表现形式的体现。
#####多态存在的三个必要条件
- 继承
- 重写
- 父类引用指向子类对象
这里提供一份代码以便理解。大意就是一个抽象父类声明但不定义一个方法,在其他子类中可以重写这个方法。
1 | abstract class Animal { |
###java组件部分设计
Swing
在本次实训实验中利用了Swing这个java的GUI工具包,以实现一个简单的计算器。其中的主要用途是引用这些包的相关控件,控件的相关接口,同时给这些控件注册事件,建立事件处理逻辑。
介绍控件,首先应提到JComponet 。
JComponent
Swing 的整个可视组件库的基础构造块是 JComponent。它是所有组件的父类。它是一个抽象类,所以不能创建 JComponent,但是作为类层次结构的结果,从字面意义来说它包含了数百个函数,Swing 中的每个组件都可以使用这些函数。
注意: 每一个控件都是一个类,具有许多接口函数,在eclipes这个IDE上可以轻松获取。使用方法:鼠标移动到某一个控件类名,按ctrl键点击类名,即可弹出这个控件类里头详细的函数定义。
常用的控件集合
控件 | 用途 |
---|---|
JLabel | 用作文本描述 |
JButton | 按钮 |
JFrame | 窗口 |
JPanel | 控件容器 |
JTextField | 文本输入框 |
JCheckBox | 确认框 |
GridLayout | 生成网格状的布局 |
Tips: 任何一个控件都有Add()的方法,意味着每一个控件都可以添加到另外一个控件里。
注册事件的方法
以下以button为例,进行两种常用方式的注册。
方法1 匿名内部类实现
1 | button.addActionListener( |
方法2 利用一般内部类实现
1 | button.addActionListener(new Button2ActionListener()); |
用了以上的基础知识就可以解决一个简单计算器的实现啦。
Junit 学习和使用
###Junit是什么
JUnit是用于编写和运行可重复的自动化测试的开源测试框架, 这样可以保证我们的代码按预期工作。JUnit可广泛用于工业和作为支架(从命令行)或IDE(如Eclipse)内单独的Java程序。
JUnit提供:
- 断言测试预期结果。
- 测试功能共享通用的测试数据。
- 测试套件轻松地组织和运行测试。
- 图形和文本测试运行。
JUnit用于测试:
整个对象
对象的一部分 - 交互的方法或一些方法
几个对象之间的互动(交互)
###JUnit的特点
- JUnit是用于编写和运行测试的开源框架。
- 提供了注释,以确定测试方法。
- 提供断言测试预期结果。
- 提供了测试运行的运行测试。
- JUnit测试让您可以更快地编写代码,提高质量
- JUnit是优雅简洁。它是不那么复杂以及不需要花费太多的时间。
- JUnit测试可以自动运行,检查自己的结果,并提供即时反馈。没有必要通过测试结果报告来手动梳理。
- JUnit测试可以组织成测试套件包含测试案例,甚至其他测试套件。
- Junit显示测试进度的,如果测试是没有问题条形是绿色的,测试失败则会变成红色。
注解 | 描述 |
---|---|
@Testpublic void method() | 测试注释指示该公共无效方法它所附着可以作为一个测试用例。 |
@Beforepublic void method() | Before注释表示,该方法必须在类中的每个测试之前执行,以便执行测试某些必要的先决条件。 |
@BeforeClasspublic static void method() | BeforeClass注释指出这是附着在静态方法必须执行一次并在类的所有测试之前。发生这种情况时一般是测试计算共享配置方法(如连接到数据库)。 |
@Afterpublic void method() | After 注释指示,该方法在执行每项测试后执行(如执行每一个测试后重置某些变量,删除临时变量等) |
@AfterClasspublic static void method() | 当需要执行所有的测试在JUnit测试用例类后执行,AfterClass注解可以使用以清理建立方法,(从数据库如断开连接)。注意:附有此批注(类似于BeforeClass)的方法必须定义为静态。 |
@Ignorepublic static void method() | 当想暂时禁用特定的测试执行可以使用忽略注释。每个被注解为@Ignore的方法将不被执行。 |