day06_debug+泛型+枚举+静态导入+自动装拆箱

一、debug调试模式(断点调试模式)

  1. 使用这个模式,调试程序(看到程序内部数据变化)
  2. 设置断点(双击行号)
  3. debug as方式来,运行程序
  4. 可以让程序向下执行

step over 快捷键 F6 (单步执行)
resume 快捷键 F8 (调试结束,直接向下执行。即跳到下一个断点,如果没有断点,直接运行结束)

5.debug其他用途

查看程序源代码
F7 step into:进入方法
step return :返回

二、eclipse快捷键

代码修复ctrl+1
删除行ctrl + d
代码缩进,格式化 Ctrl+shift+F

三、Junit单元测试
四种测试:单元,集成,系统,用户验收

其中,单元测试,如下:

测试对象:一个类中的方法
junit不是Javase的一部分,想要使用,导入jar包。但,myeclipse中自带有junit的jar包

junit版本 3.x 4.x
单元测试时:方法命名规则:
public void 方法名(){}

运行测试方法【注解方式】
方法上面写 @Test
@Ignore:表示这个方法不进行单元测试

断言(了解)
Assert.assertEquals(“测试期望的值”,”方法运行的实际值”);

四、泛型 简介
JDK 1.0 1.1 1.4 5.0
JDK 5.0 新特性
泛型,枚举,静态导入,自动拆箱,增强for,可变参数,反射

为什么使用泛型?
一般使用在集合上,比如,把一个字符串类型的值,放入到集合中,那么这个值在放入到集合之后,容易失去它本身的类型,只能是Object类型。而此时,对类型强制转换的时候,容易出现类型转换错误。

1.使用在集合上

常用集合:list map set

在泛型里面写是一个对象,比如String 不能写就基本数据类型
,,应该写基本数据类型的包装类
byte – Byte
short – Short
int – Integer
long – Long
float – Float
double – Double
char – Character
boolean – Boolean

2.使用在方法上

使用 泛型 来 解决【 逻辑相同,返回值不同的方法】

    /*
     * 使用泛型方法需要定义一个类型,使用大写字母表示T 这个T表示任意类型
     * 写在返回值之前
     * 
     * */
    public static <T> void swap1(T[] arr,int i,int j) {
        T t =arr[i];
        arr[i] = arr[j];
        arr[j]=t;
    }

3.使用在类上

public class TestDemo4<T> {
    //可以在类里面,直接使用T的类型
    T aa;
    public void test11(T bb) {}

    //写一个静态方法,静态方法不能使用类上面定义的泛型
    public static <A> void test12( A aa){}

1.泛型擦除

泛型只是出现在源代码阶段,当编译之后,泛型不存在

2.使用泛型来实现一个方法,接受任意类型的数组,颠倒数组中的所有元素

//泛型来 颠倒元素的顺序
private static <T>void reverses(T[] arr2) {
    for(int i=0;i<arr2.length/2;i++) {
        T t = arr2[i];
        arr2[i] = arr2[arr2.length-1-i];
        arr2[arr2.length-1-i]=t;
    }   
}

五、枚举 简介

什么是枚举?

在一定范围内取值,这个值只能是这个范围中的任意一个
比如,现实中的红绿灯,只能亮一个

使用一个关键字enum

enum Color3{
    RED,GREEN,YELLOW;
}

枚举的 构造方法也是私有的
特殊枚举的操作:
1.在枚举类里面有构造方法(构造方法里面有参数,需要每个实例上面都写)

2.在枚举里面有抽象方法,需要枚举的每一个实例都来重写这个抽象方法

六、枚举api的操作

name()返回枚举名称
ordinal() 枚举的下标,从0开始
valueOf(Class<T> enumType, String name);得到枚举对象
编译时,生成下面这2个方法,在api里面没有
valueOf(String name)转换枚举对象
value()获得所有枚举对象数组

 枚举对象,名称,下标之间的转换

七、静态导入
代码里面,直接使用静态导入方式,导入静态方法或者常量
import static xx.xx.xxx.xx

使用场景比如,实现一个计算器,在Math类里面

八、自动拆装箱

装箱:把基本数据类型转换为包装类
拆箱:把包装类转换为基本的数据类型
//自动装箱
Integer a =10;
//自动拆箱
int m=a;

//在jdk1.4里面 实现拆装箱
public void test1() {
    //装箱
    Integer m = new Integer(10);
    //拆箱
    int a = m.intValue();
}

jdk是向下兼容的,比如,在jdk1.4里面写的代码,在5.0里面也可以执行

//jdk1.4不能实现自动拆装箱

public static void main(String[] args) {
doSomething(10);

}

public static void doSomething(double m) {
System.out.println(“doulbe…”);
}

public static void doSomething(Integer a) {
System.out.println(“integer…”);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值