day07总结
今日内容
- MyEclipse安装与使用
- JUnit使用
- 泛型
- 1.5新特性
- 自动装箱拆箱
- 增强for
- 静态导入
- 可变参数方法
- 枚举
- 反射
MyEclipse安装与使用(yes)
安装MyEclipse
先安装了JDK
?
MyEclipse介绍
?
- MyEclipse是Eclipse的一个插件;
- MyEclipse是需要花钱的;
- MyEclipse官网不在欢迎中国人登录;
?
MyEclipse使用
?
1 创建项目
- 选择工作空间;
- 工作空间路径不能有空格和中文;
- 工作空间以班名来命名:20130922
- 创建项目;项目名以day0x为前缀,例如今天是第1天,那么今天的项目以day01为前缀;
- 创建项目时配置JRE,如果不配置就是使用默认JRE;
- 其实我们指定的都是JDK,而不是JRE。因为我们要开发Java项目,而不是运行!
- 创建类,注意,所有类都必须有包,所有类名、变量名、方法名等一定要按规范来做;
- 默认包名以cn.itcast为前缀;
- 指定类的修饰符;
- 指定类的父类;
- 指定类的接口;
- 指定方法:是否创建main、是否通过父类创建构造器、是否实现抽象方法;
- 编写Hello World;
- 运行java程序的方式;
?
断点调试模式运行java程序
?
1 断点调试的目的
- 跟踪源代码;
- 观察程序运行状态;
?
2 调试程序1
编写求和代码
- 设置断点;
- debug运行;
- 进入debug透视图;
- 程序会运行到断点处停住;
- 当前行还没有运行;
- 查看变量值:选中变量à鼠标右键àWatch;
- F5(跳入)、F6(跳过)、F7(跳出);
?
3 调试程序2
使用Arrays.binarySearch()编写折半搜索数组元素代码
- 设置断点;
- 测试跳入;
- 测试跳过;
- 测试跳出;
- 添加断点;
- 测试进入下一断点;
- 测试返回当前方法栈的头部(Drop To Frame);
- 清除断点;
- 清除表达式;
- 注意,停止程序!
?
MyEclipse快捷键
?
-
MyEclipse常用快捷键1
- Alt + /(内容助理):补全;
- Ctrl + 1(快速定位):出错时定位错误,与点击"红X"效果一样;
- Ctrl + Shift + O:导包;
- Ctrl + Shift + F:格式化代码块;
?
2 MyEclipse常用快捷键2
- Ctrl + Shift + T:查看源代码;
- Ctrl + 点击源代码:查看源代码;
- F3:查看选中类的源代码;
- Alt + 左键:查看源代码时的"原路返回";
- Ctrl + Shift + X:把小写修改为大写;
- Ctrl + Shift + Y:把小写修改为小写;
- Ctrl + Alt + 下键:复制当前行;
- Ctrl + /:添加或撤销行注释;
- Ctrl + Shift + /:对选中代码添加段注释;
- Ctrl + Shift + \:撤销当前段注释;
- Alt + 上键:向上移动当前行;
- Alt + 下键:向上移动当前行;
- Ctrl + D:删除当前行;
?
MyEclipse:
- 工作空间;
- 项目名称;
- 包名;
- 类名;
- Alt + /、Ctrl + 1、Ctrl + shift + o、Ctrl + shift + f
?
JUnit使用
测试1
?
1 JUnit的作用
JUnit用来为程序写测试用例。
以前总是需要自己写个main方法来测试某个方法。当需要测试另一个方法时,还要在main中再写一段代码对另一个方法进行测试。
JUnit是专业的测试工具!!!
?
2 为测试程序创建包
为JUnit写一个包:junit.test包。所有测试类都写到这个包中。
?
3 编写Person类
package cn.itcast; ? public ????public ????????System.out.println("run"); ????} ???? ????public ????????System.out.println("eat"); ????} } |
?
4 编写Person的测试用例类:PersonTest
包资源管理器à选中Person类à右键ànewàJUnit TestCaseà修改包名为junit.testà下一步à选中要测试的方法。
每个测试方法都会有@Test注解。
在生成的PersonTest中给testXXX()方法添加测试内容。
?
5 运行测试用例
- 选中PersonTest类à右键àRun asàJUnit Test;
- Outlineà选中testXXX()方法à右键àRun as à JUnit Test。
?
测试2
?
1 setUp()和tearDown()
- 再创建一个测试用例;
- 勾选setUp()和tearDown()方法;
- setUp()方法会有@Before注解;
- tearDown()方法会有@After注解。
- setUp()方法会在所有测试方法之前运行;
- setUp()方法可以用来为每个测试方法在测试之前做一些准备工作;
- tearDown()方法会在所有测试方法之后运行。
- tearDown()方法可以用来为每个测试方法在测试之后做一些清理工作;
?
测试3
?
1 setUpBeforeClass()和tearDownAfterClass()
- 再创建一个测试用例;
- 勾选setUpBeforeClass()和tearDownAfterClass();
- setUpBeforeClass()方法会有@BeforeClass注解;
- tearDownAfterClass()方法会有@AfterClass注解;
- setUpBeforeClass()方法会在测试开始之前被调用;
- setUpBeforeClass()方法可以用来在测试开始之前做一些准备工作;
- tearDownAfterClass()方法在测试结束之后被调用;
- tearDownAfterClass()方法可以用来在测试结束之后做一些清理工作;
- 这两个方法用的没有setUp()和tearDown()多。
?
@Test – 必须是public的、返回为void、无参的方法
@Before --必须是public的、返回为void、无参的方法
@After --必须是public的、返回为void、无参的方法
@BeforeClass – 必须是public的、static的、返回为void、无参的方法
@AfterClass – 必须是public的、static的、返回为void、无参的方法
?
泛型
泛型概述
?
1 数组与集合
Java中可以定义任意类型的属性,例如String[]中存放的就是String类型的数据,我们称之为持有String类型的数组。但1.5之前时,Java的集合类却只能持有Object类型,1.5时添加了泛型的概念,泛型允许Java创建持有任意类型的集合对象,例如:new ArrayList<String>()表示这个ArrayList中只能持有String类型的对象。
?
2 类型变量(参数)
具有一个或多个类型参数的类就是泛型类。
泛型类都至少有一个类型变量,你需要在创建泛型类对象时给类型变量赋值。当然,你要给类型变量赋的值必须是一个类型!
ArrayList<String> arr = new ArrayList<String>();
其中String就是给ArrayList类的类型变量赋值。在ArrayList类中所有使用类型变量的地方都会被String所替换。例如:boolean add(E e),其中e的类型就是变量,它会被String替换,最终变成boolean add(String e)。E get(int index)方法中返回值的类型为变量,它也会被String替换,最终变成String get(int index)。
?
3 泛型的好处
将运行期遇到的问题转移到了编译期。例如在1.4时,ArrayList类的add()方法参数还是Object类型,当然get()方法的返回值类型也是Object。这就说明使用get()方法获返回值后,你还需要强转。错误的强转可能会出现ClassCastException。
ArrayList list = new ArrayList();
list.add("hello");
Integer i = (Integer)list.get(0);//抛出异常
?
这个问题在有了泛型之后就不会再有了。
ArrayList<Integer> list = new ArrayList<Integer>();
list.add("hello");//编译出错!
Integer i = (Integer)list.get(0);
?
很明显,是泛型把只能在运行时才能找到的错误推向了编译期!这就是泛型的优点!!!
?
定义泛型类(接口)
?
1 自定义泛型类的语法
自定义泛型类的语法基本与定义正常的法一样:
public class A<T> {}
定义泛型类时,需要在类名后面给出一对尖括号,在尖括号中给出1~N个类型变量。
?
2 泛型类中使用类型变量
用户在使用泛型类时,需要为类型变量赋值。例如:new A<String>()。
在泛型类中可以使用类型变量:
Day07 jdk5.0新特性&Junit&反射