美文网首页
java学习第六天

java学习第六天

作者: toro宇 | 来源:发表于2020-01-09 17:25 被阅读0次

    异常处理


    数组越界 空指针 错误运算

    异常处理机制

    屏幕快照 2020-01-08 下午5.36.49.png
    package day10;
    
    public class Test1 {
    public static void main(String[] args) {
        Test11 two = new Test11();
        try {
            two.test();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    }
    
    class Test11{
    int i;
    public void test() throws Exception{
        Test11 one = null;
        System.out.print(one.i);
    }
    }
    
    屏幕快照 2020-01-09 上午9.53.16.png 屏幕快照 2020-01-09 上午10.14.25.png

    java提供的异常类一般是够用了,只有特殊的情况可能需要自己编写异常类

    集合

      // 如果想要让集合只能存同样类型的对象,怎么做
         //使用泛型
         Set<String> set1  = new HashSet<String>(); // 指定String为集合的泛型。 等号左边加的泛修饰的意思是在编译阶段就做限制。 右边是到运行时才生效的限制
         set1.add("df");   
    
    package day10;
    import java.util.Comparator;
    public class Persion implements Comparator<Persion>  {
    int age;
    String name;
    public Persion() {
    }
    public Persion(int age, String name) {
        this.age = age;
        this.name = name;
    }
    @Override
    public int compare(Persion o1, Persion o2) {
        // TODO Auto-generated method stub
    //      return 0;
        if(o1.age > o2.age) {
            return 1;
        }else if(o1.age < o2.age) {
            return -1;
        }else {
            return 0;
        }
    }
    }
    
    Set<Persion> set3 = new TreeSet<Persion>(new Persion());
         set3.add(new Persion(12,"lishi"));
         set3.add(new Persion(30,"wangwu"));
         set3.add(new Persion(14,"ll"));
         set3.add(new Persion(8,"hel"));
         
         for(Persion p : set3) {
             System.out.println("姓名:" + p.name + "---" + "年龄:" + p.age);
         }
    

    package day10;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    public class Test4 {
    
    public static void main(String[] args) {
    
    List<Student> lists = new ArrayList<Student>();
    lists.add(new Student("one",12));
    lists.add(new Student("two",40));
    lists.add(new Student("three",25));
    lists.add(new Student("five",2));
    
    for(Student t : lists) {
        System.out.println("name:" + t.name +"--"  + "age:" + t.age);
    }
    System.out.println("=======");
      Collections.sort(lists, new Paixu()); // 重新排序,传入要排序的集合及排序处理对象
    for(Student t : lists) {
        System.out.println("name:" + t.name +"--"  + "age:" + t.age);
    }
    }
    }
    
    class Student{
    String name;
    int age;
    public Student() {
        
    }
    public Student(String name,int age) {
        this.name = name;
        this.age = age;
    }
    }
    
    class Paixu implements Comparator<Student>{
    @Override
    public int compare(Student o1, Student o2) {
        // TODO Auto-generated method stub
        if(o1.age > o2.age) {
            return 1;
        }else if(o1.age < o2.age) {
            return -1;
            
        }
        return 0;
    }
    }
    // 输入结果
    name:one--age:12
    name:two--age:40
    name:three--age:25
    name:five--age:2
    =======
    name:five--age:2
    name:one--age:12
    name:three--age:25
    name:two--age:40
    

    泛型

    当我们定义一个类可以处理任意类型的数据时,由于任何类型的数据(Object)都可被传入,则会导致类型安全问题,并且进行数据处理时还要进行类型强转.所以 出现了泛型。用泛型定义可以接收任意类型的数据,而数据的类型,当具体操作时,根据当前操作数据的类型来具体定义即可。

    泛型的使用

    》泛型类



    》泛型接口



    public class Test6 {
    public static void main(String[] args) {
        BI<String> bi = new BI<String>();
        bi.test("hh");
    }
    }
    
    interface IB<T>{ // 泛型接口
    T test(T t);
    }
    
    /**
     * 未传入泛型实参时,与泛型类的定义相同,在声明类的时候,需将泛型的声    明也一起加到类中
     *
     */
    class BI<T> implements IB<T>{
    
    @Override
    public T test(T t) {
        // TODO Auto-generated method stub
        return t;
    }
    
    }
    
    /**
     * 传入泛型实参
     */
    
    class BI2 implements IB<String>{
    
    @Override
    public String test(String t) {
        // TODO Auto-generated method stub
        return null;
    }
    
    }
    

    》泛型方法



    泛型方法,在调用之前没有固定的数据类型,在调用时,传入的参数是什么类型,就会把泛型改成什么类型

    通配符

    枚举




    枚举类中的每个枚举都是单例模式的

    注解


    相关文章

      网友评论

          本文标题:java学习第六天

          本文链接:https://www.haomeiwen.com/subject/zdpsactx.html