一、容易错外加重点的知识点
1.面向对象中的类和方法
2.各种报错信息
3.构造方法的特点
4.this和super的应用
5.多态的特点和应用
6.子类与父类相关知识点
7.三大修饰符的应用
8.接口的应用与实现
9. 四种内部类的特点和应用
10.三种常用类
二、面向对象的小结
类与对象
类是一个模板,抽象;对象是一个具体的实例。
方法
定义、调用!
对应的引用
引用类型:基本类型(8)
对象是通过引用来操作的:栈--->堆
属性:成员变量
默认初始化:
数字: 0 0.0
char: u0000
boolean: false
引用: null
修饰符 属性类型 属性名 = 属性值
对象的创建和使用
必须使用new 关键字创建对象,构造器
对象的属性
对象的方法
类:
静态的属性 属性
动态的方法 方法
多态
即同一方法可以根据发送对象的不同而采用多种不同的行为方式。
一个对象的实际类型是确定的,但可以指向对象的引用类型有很多
多态存在的条件
有继承关系
子类重写父类方法
父类引用指向子类对象
注意事项:
多态是方法的多态,属性没有多态
父类和子类,有联系 否则类型转换异常! ClassCastException!
存在条件:继承关系,方法需要重写,父类引用指向子类对象!
不能重写:
static 方法,属于类,它不属于实例
final 常量;
private方法;
三、集合的总结
1.集合分为两大类
a 、Collection 和 Map
b、 Collection分为;list和set
2、它们的特点
a、Collection:存储多个对象
b、list:存储多个对象,有序有下标,元素可重复,下标范围0~size-1;
c、Set:存储多个对象,无序,无下标,元素内容不能重复
若想要保持有序需要在对应的类覆盖HashCode方法金和equals方法
d、map:map为一个接口,存储的是键值对
键:key,无序,无下标,元素不可重复
值:value,无序,无下标,元素可重复
3、实现类
a、 Collection 的实现类 没有,依靠子接口
b、LIst实现类:ArrayLIst;
c、Set实现类:HashSet和LinkedHashSet
HashSet:无序;
LinkedHashSet有序,但要覆盖HashCode方法金和equals方法
d、Map实现类:Map、HashMap、Properties、Hashtable、LinkedHashMap
4、Map集合的其他实现的区别
(1) HashMap:jdk1.2版本,线程不安全,并发效率高,允许null作为key/value
(2) LinkedHashMap:是HashMap的子类,按照键添加的顺序进行存储
(3) Hashtable:jdk1.0版本,线程安全,并发效率相对较低,不允许null作为key/value
(4) Properties:是Hashtable的子类,也是Map的实现类,key和value默认为String类,通常用于加载配置文件 Properties pro = new Properties();
5、其余散落重要知识点
a、泛型集合:泛型集合安全性的集合,强制要求集合中数据类型统一,方便管理
语法: ArrayList<数据类型> 集合名= new ArrayList<数据类型>();前后<>中的数据类型需要统一;
b、 List集合接口的实现的区别:
① ArrayList:底层数组实现,查询快,增删相对较慢 jdk1.2版本,线程不安全,并发效率相对快
② Vector:底层数组实现,查询快,增删相对较慢 jdk1.0版本,线程安全,并发效率相对低
③LinkedList:底层使用链表实现,查询效率相对低,增删效率相对较高 补充:数据结构的两种常见存储结构:数组+链表
数组:元素之间的内存空间连续,空间利用率相对较低,方便内存管理
链表:元素之间的内容空间不连续,空间利用率相对较高
c、遍历
forEack遍历
键值对的两种遍历方式:
·① 键遍历:通过 keySet方法获取所有的键
// 从map集合中获取所有的键:
Set<K> keys=map.keySet();
// 遍历Set集合获取每一个键:
for(K key:keys){
// 通过键获取对应值
V value = map.get(key);
// 通过 key和value操作键值 }
② 键值对:通过 entrySet获取所有的键值对
// 从map集合中获取所有的键值对:
Entry<K,V> Set<Map.Entry<K,V>>
kvs= map.entrySet();
//遍历Set集合获取每一个键值对:
for(Map.Entry<K,V> kv:kvs){
// 获取键
K key = map.getKey();
// 获取值
V value = map.getValue();
// 通过 key和value操作键和值 }