集合
set
Set是最简单的一种集合。无序,并且没有重复对象。 Set接口主要实现了两个实现类:
- HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
- TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
- 不包含重复元素。(最大的特点)
- 这个集合存入元素的顺序和取出元素的顺序不一定一致。(具体的容器对象数据结构不同,顺序也有不同)
list
有序
它可以存储重复元素。
- Arrylist 查询快 插入慢
- Linkedlist 查询慢 插入快
抽象类
抽象方法:
就是加上abstract关键字,然后去掉大括号,直接分号结束。
抽象类:
抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。
如何使用抽象类和抽象方法:
- 不能直接创建new抽象类类对象。
- 必须用一个子类来继承抽象父类。
- 子类必须覆盖重写抽象父类当中所有的抽象方法。
- 覆盖重写(实现),子类去掉抽象方法的abstract关键字,然后补上方法体大括号。
- 创建子类对象进行使用。
注意事项:
- 抽象类不能创建对象,如果创建,编译无法通过而报错,只能创建其非抽象子类的对象。
- 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
- 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错,除非该子类也是抽象类。
接口
- 接口就是多个类的公共规范
- 接口是一种引用数据类型,最重要的内容就是其中的,抽象方法
定义一个接口的格式:
public interface 接口名称{
//接口名称
}
备注:换成了关键字interface之后,编译生成的字节码文件任然是.java–>.class
使用方法:
- 接口不能直接使用,必须有一个“实现类”来实现该接口
public class 实现类名称 implements 接口名称{
} - 接口的实现类必须覆盖重写(实现)接口中所有的抽象方法
- 实现:去掉abstract关键字,加上方法体大括号
- 创建实现类的对象,进行使用。
如果是java7,那么接口中可以包含的内容有:
1.常量
成员变量其实是常量,格式:
[public][static][final]数据类型 常量名称=数据值;
注意:
常量必须进行赋值,而且一旦赋值不能改变。
常量名称完全大写,用下划线进行分割。
2.抽象方法 (最重要)格式:
[public][abstract]返回值类型 方法名称(参数列表);
注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。
1.接口当中的抽象方法,修饰符必须是两个固定的关键字,public abstract
2.这两个关键字修饰符,可以选择性的省略
如果是Java8,还可以额外包含有:
3.默认方法 用来升级接口 格式:
[public] default 返回值类型 方法名称(参数列表){方法体}
注意:默认方法也可以被覆盖重写
4.静态方法 格式:
[public] static 返回值类型 方法名称(参数列表){方法体}
注意:应该通过接口名称进行调用,不能通过实现类对象调用接口静态方法。
如果是java9,还可以额外包含有:
5.私有方法
普通私有方法:private 返回值类型 方法名称(参数列表){方法体}
静态私有方法:private static 返回值类型 方法名称(参数列表){方法体}。
注意:private的方法只有接口自己才能调用,不能被实现类或别人使用。