本帖最后由 小石姐姐 于 2018-4-20 10:41 编辑
【石家庄校区】学习总结
继承extendsJava继承特点不支持多继承 ,单一继承,但支持多层继承, 继承的变量特点:
子类只能获取父类的非私有成员; 子父类变量名不一样的时候调用父类的; 子父类变量名一样获取子类的(就近原则);
关键字子父类局部变量名一样时:
super. 变量名>>调用父类; this . 变量名>> 调用子类;
方法重写重写注意执行顺序抽象 abstract特点final 关键字(最终的意思);接口 interface接口的特点注意: !!多态多态的前提多态的成员特点成员变量 成员方法 静态方法
编译时都看左边 运行时成员方法看右边 ( 其余看左边 )
成员内部类成员内部类修饰符匿名内部类没用名字的局部内部类 定义在方法中 定义对的时候必须创建他的对象
new 类/接口(){
如果是继承 需要重写父类方法;
如果是接口 需要全部实现方法;
}.继承重写 或者实现的 方法;
获取字节码对象System类static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length): 复制源数组中指定长度个元素到一个新数组中
src: 源数组 srcPos: 指定从源数组的哪个索引开始复制 dest: 目标数组 destPos: 指定目标数组接收元素的索引位置 length: 目标数组接收元素的个数
注意: 复制时注意数组长度, 不要超出索引, 否则会出现数组越界异常返回系统时间 返回系统时间System.currenTimemillis( )返回当前系统时间;毫秒单位; 结束程序System.exit(0)j结束虚拟机 0表示正常结束; 非0表示异常结束
Date类 从1970年1月1号0:00:00开始格式Date date=new Date(); 倒包syso(date)返回的是当前系统时间; syso(date.tolocalestring) 格式成可以看懂的系统时间; date.getTime() 获取当前系统时间的毫秒值;Long类型; date.setTime(xxlong)给其设定时间
格式 Date date=new Date(long类型的 );simpleDateFormatSimpleDateFormat类: 专门用于格式化和解析时间 calendar 日历类静态字段: 表示时间的某个部分
成员方法
int get(int field): 返回给定日历字段的值
void set(int field, int value): 将给定的日历字段设置为给定值
例如:
设置年: c.set(Calendar.YEAR, 2000); 设置月: c.set(Calendar.MONTH, 0);
void add(int field, int amount): 为给定的日历字段添加或减去指定的时间量, 如时间字段是天, 增加n天, 时间字段是秒, 增加n秒. 减少用负数
例如:
当前日期增加一天: c.add(Calendar.DAY_OF_MONTHY, 1); 当前日期减少一天: c.add(Calendar.DAY_OF_MONTHY, -1);
包装类什么是包装类?
基本数据类型与其包装类的对应关系
byte: Byte short: Short char: Character int: Integer long: Long float: Float double: Double boolean: Boolean
string 转int 字符串和整数转换 String转int/Integer
方式1: Integer Integer(String s)
方式2: 常用的 static int parseInt(String s)
方式3: static Integer valueOf(String s)
int转String
int/Integer转tring 正则表达式 pattern 使用方法 xxx.matches(自定义正则表达式)String类 字符串切割; 集合 collection 单列集合最顶层 本身是接口常用方法 添加 删除 c.remove(Object o): 删除元素中的指定元素, 删除成功返回true, 删除失败返回false void c.clear(): 清空集合中的元素;
判断 boolean c.contains(Object o): 判断集合中是否包含指定元素, 包含返回true, 否则false boolean c.isEmpty(): 判断集合是否为空集合, 即没有元素. 没有元素返回true, 否则false
转换 迭代器的概述和测试Iterator it=new 集合.iterator 并发修改异常并发修改异常: 修改: 怎样解决 格式: ListIterator 是 Iterator 的子类 List 特有功能List接口 有序的查找快 增删慢 无序的增删快 查找慢 List的子类概述, LinkedList特有功能特有方法 (用于处理开头和结尾的元素) void addFirst(E e): 将元素添加到开头 void addLast(E e): 将元素添加到末尾 E getFirst(): 获取开头的元素 E getLast(): 获取结尾的元素 E removeFirst(): 删除第一个元素, 并返回删除的元素 E removeLast(): 删除最后一个元素, 并返回删除的元素
Set集合Set接口: 继承自Collection接口 特点
元素无序(存入和取出的顺序不一致) 元素不能重复(元素唯一) 没有索引
HashSet存储自定义对象并遍历HashSet类: 是Set接口的实现类
HashSet 需要重写 hashCode()方法和equals()方法
Collections工具常用静态方法
static int binarySearch(List list, T key): 使用二分查找来查找元素在指定列表的索引位置 static void copy(List dest, List src): 将源列表中的数据复制到目标列表 static void fill(List list, Object obj): 使用指定对象填充指定列表的所有元素 static void reverse(List list): 反转集合中的元素 static void shuffle(List list): 随机打乱集合中元素的顺序 static void sort(List list): 将集合中的元素按照元素的自然顺序排序
static void swap(List list, int i, int j): 将指定列表中的两个索引进行位置互换
Map接口Map<K, V>接口
Map和Collection的区别
Map是双列集合, 用于处理有一一对应关系的数据,键不能重复且键无序 Collection是单列集合, 有不同的子体系, List允许重复且有序, Set不允许重复且无序
Map功能概述和测试HashMap类
多态创建对象: (也可以不使用多态)
常用方法:
增和改
删
查
判断
遍历
Set<Map.Entry<K, V>> entrySet(): 获取键值对的Set集合 Set<K> keySet(): 获取所有键的Set集合 Collection<V> values(): 获取所有值得Collection集合
Map的第一种遍历方式: keySet()Map的第二种遍历方式: entrySet()遍历步骤
通过map.entrySet()获取到Entry<K, V>的Set集合 遍历Set集合获取到每一个Entry<K, V> 使用Entry的getKey()获取key, 使用Entry的getValue()获取value
Set<Entry<String, String>> entrySet = map.entrySet(); for (Entry<String, String> entry : entrySet) { // 通过entry对象获取键值对 String key = entry.getKey(); String value = entry.getValue(); System.out.println(key + "---" + value);
可变参数定义格式: 形参数据类型... 形参名 注意事项: 可变参数的数量可以从0个到多个 可变参数只能是同一种数据类型 可变参数的定义位置必须在方法形参列表的最后一个
异常父类为 Throwable
异常为:程序发生错误。
Throwable :
|
|----- error (不应捕获的严重问题, 不能处理的异常)
|----- Exception (可以处理的异常) ~~编译时异常 可以自己抛出
|--RuntimeException ~~运行时异常。常见异常
ArithmeticException <数学异常>
NullPointerException <空指针异常>
ArrayIndexOutOfBoundException<数组越界异常>异常的处理方式 JVM 处理(抛出) 或者自己处理 try....catchJVM处理异常会将程序结束
自己处理不会停止后续的程序 try....catch 捕获异常 (对可能发生的异常进行捕获。) 避免程序的终止。
直接抛出异常
需要在方法的声明上使用 throws 异常 不捕获异常 ,直接抛出 ,谁调用谁解决 或者调用者也抛出, 使用 try...catch 语句 捕获异常. 程序可以继续执行
//格式
try{
//可能出现的异常
}catch(NullPointerException e)/*(异常类型 变量名)*/{
//可以输出
//也可以查看错误原因
}
//try里 执行到和 catch里 异常类型一致的代码后 不会执行 try里异常代码的后续代码直接跳到 catch
多异常代码处理
try {
// 可能发生异常的代码
} catch (异常类型1 异常对象名1) {
// 处理异常1的代码
} catch (异常类型2 异常对象名2/*父类在后*/) {
// 处理异常2的代码
}finally{
//无论怎样都会执行的一段代码 (io流关流 释放资源)
}
finally查看异常的方法Throwable 查看异常的方法
String getMessage() :获取异常的原因, 没有原因则返回null String toString(): 返回异常的类型和原因 void printStackTrace(): 使用标准错误输出流打印异常详情
自己定义异常的方法
//创建一个异常类 继承父类
public class ScoreException extends Exception{
public ScoreException() {
super();
}
public ScoreException(String message) {
super(message);
}
//---------------------------
//主方法
public static void main(String[] args) {
try {
checkScore(101);
} catch (ScoreException e) {
e.printStackTrace();
}
}
//创建的方法继承自己定义的类 //抛出异常
public static void checkScore(int score) throws ScoreException {
if (score > 100 || score < 0) {
//关键字调用
throw new ScoreException("分数有误");
}
System.out.println("分数正常");
}
递归
|