javaweb >_< java基础增强 ①

Posted on 2015-03-12 09:34  night-tian  阅读(263)  评论(0编辑  收藏  举报

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
}