• Java基础 笔记(四)


    泛型:
    泛型:通过<数据额类型>来接受一种引用数据类型。作用在编译时。使用检查
    加入集合的对象是否属于该类型,从而把执行时的问题转换为编译时异常。提高程序的安全性
    避免抛出 ClassCastException。同一时候也不须要类型转换

    <>什么时候使用?
    当操作的引用数据类型不确定的时候。使用<>.把要操作的数据类型传进来就可以
    事实上<>相当于接受详细的引用数据类型的參数范围

    泛型在接口中的应用:
    实例:
    public class Demo21 {
    public static void main(String[] args) {
    Manager m = new Manager();
    m.add(new Worker(“a”, 23));
    m.add(new Worker(“ab”, 21));
    m.add(new Worker(“ac”, 22));

        System.out.println("delete-->" + m.del(1));
        m.show();
    }
    
    static class Worker {
        private String name;
        private int age;
        public Worker(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        @Override
        public String toString() {
            return "Worker [name=" + name + ", age=" + age + "]";
        }
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }
    

    }

    interface IManager {
    public void add(T data);

    public T del(int index);
    
    public void show();
    

    }

    class Manager implements IManager {
    private List list;
    Manager() {
    list = new ArrayList();
    }
    @Override
    public void add(T data) {
    list.add(data);
    }
    @Override
    public T del(int index) {
    T data = list.get(index);
    list.remove(index);
    return data;
    }
    @Override
    public void show() {
    Iterator it = list.iterator();
    while (it.hasNext()) {
    System.out.println(it.next());
    }
    }
    }


    // 方法中使用泛型:当方法參数数据类型不确定,使用泛型
    class GenericMethod {
    public void test(T t) {
    System.out.println(“没有返回值的方法t”);
    }

    public <T> T getT(T t) {
        System.out.println("有返回值的方法getT");
        return t;
    }
    

    }


    通配符:?

    限定类型:
    ? extends E: 接受E类型或者E的子类型,上限
    一般存储对象的时候 addAll()
    ? super E:接受E类型或者E的父类型,下限
    一般用取出对象,比較器
    public class Demo22 {
    public static void main(String[] args) {
    Food f = new Food();
    f.setFood(“汉堡”);
    System.out.println(f.getFood());
    Food f1 = new Food();
    f1.setFood(100);
    Food f2 = new Food();
    buy(f);
    buy(f1);
    buy1(f1);
    buy2(f);
    buy2(f2);
    }
    public static void buy(Food

    equals().—>key是唯一的

    TreeMap:(key-value)集合,依照键进行排序

    和TreeSet相似

    1)自然顺序
    2)自己定义比較器
    a 自己定义类实现Comparable接口
    b 定义自己定义比較器类。实现Comparator接口

    (key-value)集合,依照键进行排序

    和TreeSet相似

    1)自然顺序
    2)自己定义比較器
    a 自己定义类实现Comparable接口
    b 定义自己定义比較器类。实现Comparator接口

  • 相关阅读:
    MariaDB + Visual Studio 2017 环境下的 ODBC 入门开发
    CUDA 9.1/9.2 与 Visual Studio 2017 (VS2017 15.6.4) 的不兼容问题
    用 SDL2 在屏幕上打印文本
    用 SDL2 处理精灵图
    用 SDL2 进行事件驱动编程
    用 SDL2 加载PNG平铺背景并显示前景
    用 SDL2 平铺背景并显示前景
    用 SDL2 显示一张图片
    VPS 安全措施(CentOS 6)
    Hello World!
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7205813.html
Copyright © 2020-2023  润新知