javaweb_Ⅰjava基础增强——断点
ps:Bad version number in .class file. 该错误 指eclipse运行环境低于编辑java版本。
双击左键设置断点,
F5跳入方法中。step into
F6跳过。step over
F7跳出方法 。step return
查看变量值:右键watch。
跳到当前方法的最开始。drop to frame
跳到下一个断点 /结束应用程序。 resume
清除断点breakpoint。
断点调试完成后,要在breakpoint中清除所有断点
断点调试完成后,一定要记得结束运行断点的jvm.
javaweb_Ⅱjava基础增强——eclipse快捷键
Alt+/ 内容助理
ctrl+1 快速修复
ctrl+shift+o 导包
ctrl+ shift+ f 格式化
ctrl+左键:看方法代码(源码导入点击第三个)
Alt+ 方向键:方法之间跳跃
ctrl+shift+/ 加注释或者\ 去注释
f2 查看方法说明
ctrl+alt+向下 复制行
alt+向上/下 移动整行
ctrl+T 查看继承关系
chrl+shift+T 查看源代码
javaweb_Ⅲjava基础增强——JUnit测试工具
junit Type mismatch: cannot convert from Test to Annotation
Type mismatch: cannot convert from Test to Annotation
public class Test {
@Test
public void testConnection() {
}
}
是因为类名字和测试方法名字相同
@Test//必须添加,通知程序使JUnit public void testRun () { Person p = new Person(); p .run (); }
@before
每一个测试方法之前运行:初始化资源
@after
每一个测试方法之后运行:释放资源
@beforeClass
每一个测试方法类之前运行
@afterClass
每一个测试方法类之后运行
Assert 断言
Assert.assertEquals(期望的值,方法返回的值);
javaweb_Ⅳjava基础增强——增强for循环
@Test public void test1() { int arr[] = { 1, 2, 3 }; for (int num : arr) { System.out.println(num); } } @Test public void test2() { List list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); for (Object object : list) { int i = (Integer) object; System.out.println(i); } } @Test public void test3() { Map map = new LinkedHashMap(); map.put("1", "aaa"); map.put("2", "aba"); map.put("3", "aac"); // 第一种方式 for (Object object : map.keySet()) { String key = (String) object; String value = (String) map.get(key); System.out.println(key + "=" + value); } //第二种方式 for (Object object : map.entrySet()) { Map.Entry entry = (Entry) object; String key = (String) entry.getKey(); String value = (String) entry.getValue(); System.out.println(key + "=" + value); } } /* * HashMap()通过hashmap的算法实现 传统map数据的取出方式 * 1 * Set set = map.keySet(); * Iterator it = set.iterator(); * while(it.hasNext()){ * String key = (String)it.next(); * String value = (String)map.get(key); * sys; * } * * 2 * * Set set = map.entrySet(); * Iterator it = set.iterator(); * while(it.hasNext()){ * Map.Entry entry = (Entry)it.next(); * String key =(String)entry.getKey(); * String value = (String)entry.getValue(); * sys; * } */
需要注意问题:
增强for循环只适合取数据。
javaweb_Ⅴjava基础增强——枚举
enum Grade{ //class A,B,C,D,E; //object } @Test public void testGrade () { System. out. println( Grade. A. getNum()); } @Test public void testChinaNum () { System. out. println( China. A. getNum()); System. out. println( China. B. chinaNum()); } //如何定义枚举的构造函数/方法和字段/去封装更多的信息。 enum Grade { A ("100-90" ), B ("100-0090" ), C ("100-090" ), D ("100-900" ), E( "1000-90"); private String value ; private Grade( String value ) { this .value = value; }//私有构造函数,不允许随便增加枚举对象 public String getNum() { return this .value ; }//对外提供获得枚举对象的信息 } // 带抽象方法的枚举 enum China { A ("100-90" ) { public String chinaNum() { return "优" ;//每一个枚举对象需要实现抽象方法 }; }, B ("100-0090" ) { public String chinaNum() { return "优" ; }; }, C ("100-090" ) { public String chinaNum() { return "优" ; }; }, D ("100-900" ) { public String chinaNum() { return "优" ; }; }, E ("1000-90" ) { public String chinaNum() { return "优" ; }; }; private String value; private China( String value ) { this .value = value; } public String getNum() { return this .value ; } public abstract String chinaNum();//抽象方法 }
注意事项:
枚举类型的构造函数,必须为private
实现接口
有抽象方法,需要在创建对象时实现抽象方法
单态设计模式:
单态设计模式设计一个类
enum A{//class
A;//object
}