0828学习总结

接口

如果在一个类中,一个实现的方法都没有,或者都是抽象方法,那么,这样的类,成为接口。
接口定义使用 interface 定义
语法:
[修饰符] interface 接口名 extends 父接口1, 父接口2… {
0-N 个常量;
0-N个抽象方法;
}
这里写图片描述
接口中所有的成员在定义的时候访问控制修饰符只能是 public 或者是 default;
接口的命名规范同类的命名规范;
在接口中,成员变量必须是静态的常量,方法必须是抽象方法,所以可以省略相关的修饰符。

接口的继承

接口的继承和类的继承不一样,接口支撑多继承,使用 extends 关键字,之间用逗号隔开,继承的内容包含了,常量和方法。
这里写图片描述
这里实现了接口的多继承

接口的使用

接口是抽象类一样,是不能被实例化的,但是接口可以用于声明引用类型的变量,当使用接口来声明变量时,该变量的运行时类型必须是该接口的实现类。
接口的作用:
用于定义实现类的行为规范;
定义变量
定义一些常量
被其他类实现

接口和抽象类

相同点:都不能被实例化,位于继承树的顶端,是用于被其他类继承或者实现的;
都可以包含抽象方法,子类都必须要实现抽象方法;

不同点:抽象类中可以定义普通方法,但是接口中都是抽象方法和静态变量;
在抽象类是可以定义静态方法的,接口中不能定义静态方法的;
在抽象中可以定义构造器的,但是在接口中是不存在构造器这个概念的;
一个类最多只能有一个直接的父类或者抽象类,但是可以有多个接口的实现。

集合框架

在集合框架中,主要分为 Collection 和 Map 两大接口。
在 Collection 中又分为 List (有序集合) 和 Set (无序集合)。List 和 Set 都是接口。
Map 存储的 Key-Value 结构。
Collection接口:
List
是实际开发中用的最多的一种数据结构,存储的单个元素,使用泛型去强制约束 List 中存放的是一致的数据类型
Set
不详细阐述,在遍历的时候不能使用索引方式,只能通过迭代器和 foreach。

迭代器

这里写图片描述
插入元素:add()
这里写图片描述
Map

类似的可以理解给集合元素中的值定义了一个 Key 键(遍历),之后可以通过相关的方法快速的定位到具体的 Value 中。
获取某个 key 的 value
Value get(Key)
如何遍历 Map 结构
获取 Map 的 Key 集合,通过遍历 Key 集合,获取 Value 值。
获取 key 集合:map.keySet();
遍历 Key 集合:iterator;
获取 Value 值:get(key);
例子:这里写图片描述
注意事项:在实际开发中,List 一般使用 ArrayList 实现类去构建,Map 一般使用 HashMap 实现类去构建。
要掌握对于 List 和 Map 的添加元素、遍历元素。
要认识集合框架中关于对象在内存中的存储方法。

使用 Collections.sort(list) 进行排序
集合中的元素类要实现 Comparable 接口,重写 compareTo 方法;
调用 Collections.sort(list) 完成排序
例子:public static void main(String[] args) {
List list = new ArrayList();
list.add(new Integer(5));
list.add(new Integer(8));
list.add(new Integer(1));
list.add(new Integer(3));
list.add(new Integer(2));
list.add(new Double(3.1));
System.out.println(“list开始状态”);
SortList.output(list);
//Collections.sort方法将用默认比较器排列list的元素
Collections.sort(list);
System.out.println(“list被默认比较器排序后的状态”);
SortList.output(list);
//下面将list的元素按降序排列
Collections.sort(list, new MyIntComparator());
System.out.println(“list被自定义比较器排序后的状态”);
SortList.output(list);
}

猜你喜欢

转载自blog.csdn.net/fengnp/article/details/82147599
今日推荐