本帖最后由 小石姐姐 于 2017-12-22 15:22 编辑
[石家庄校区] 就业班day01-day06 总结 JavaEE就业06期
静态静态static:
- 含义
- 作用
- 修饰成员变量, 成员方法, 使其被该类的所有对象共享
- 修饰类
- 如何调用static修饰的变量和方法
- 静态的特点
- 静态成员被所有对象共享
- 静态成员可以直接使用类名调用
- 静态成员的加载优先于对象
- 静态资源在创建类时加载并初始化(在方法区中)
- 非静态资源在创建对象时才加载并初始化(在堆内存中)
- 静态成员生命周期
- 静态成员在内存中的位置
- 静态成员的加载时机
静态成员和非静态成员的区别
静态方法中不能用this
- 因为this引用当前类的对象, 而静态方法在类加载时已经加载, 此时没有对象可以引用
如何避免一个类创建对象?
- 将构造方法使用private修饰, 让外界无法访问
代码块概述
继承- 面向对象三大特征:
继承,是面向对象三大特征之一
- 概念
- 从已有类派生出新的类
- 已有类称为父类(基类), 新类称为子类(派生类)
- 子类对于父类的关系就是继承
Java中类的继承的特点
- 只支持单继承
- 不支持多继承
- 支持多层继承
- Java中所有类都直接或间接的继承自Object类
继承的优缺点
匿名对象- 匿名对象:
- 使用匿名对象的格式:
- 调用属性: new 类名().属性;
- 调用方法: new 类名().方法();
- 作为参数: person.pick(new Fruit("Apple"));
- 匿名对象应用场景:
final- final关键字:
- 是一个修饰符, 可以修饰类, 方法, 变量, 表示其无法改变
- 作用:
- 修饰类: 不能被继承
- 修饰方法: 不能被子类重写
- 修饰变量: 自定义常量
- 基本数据类型: 其值永不改变的常量
- 引用数据类型: 引用一经初始化便不能修改, 且必须在使用前对其初始化
- 常量分类:
- 字面值常量
- 自定义常量: final修饰的
- 常量名命名规则: 字母全都大写, 不同单词用下划线分隔
抽象类- 接口
- 接口的作用:
- 为实现类扩展出接口具有的功能
- 弥补Java只能单继承的局限性, 抽象类只能单继承, 而接口可以多实现
接口的成员特点
- 接口的成员变量
- 必须都是常量(自定义常量)
- 默认是public static final修饰的, 即使你不写或少写某个修饰符
- 接口的构造方法
- 接口的成员方法
- 必须都是抽象方法
- 不能是static的
- 默认是public abstract修饰, 即使你不写或少些某个修饰符
- 接口的优点
- 通过多实现打破了单一继承的局限性
- 接口可以为实现类提供规则
- 降低程序耦合性(多人分别按照接口开发各自的功能)
多态:- 多态
- 一个事物可以具有多种表现形态
- 是面向对象三大特征之一
- 多态的前提
- 子父类存在继承关系
- 子类有重写父类的方法
- 父类引用指向子类对象
- 动态绑定:
- 对象调用的成员方法, 是根据程序运行时的具体的类型确定的
- 多态的成员特点:除了成员方法运行时看右边, 其他无论编译还是运行都看左边
- 多态转型:
- 向上转型: 作为参数类型, 简化代码
- 向下转型:调用子类对象特有的方法
- instanceof语句
- 作用: 判断一个对象是否是某个类的对象, 如果是则返回true, 如果不是则返回false
- 格式: 对象 instanceof 类名
包- 包:
- package, 就是文件夹(目录)
- 作用:
- 特点:
可以不使用包吗?
权限修饰符权限修饰符
- private
- default
- protected
- public
获取字节码对象的方式- 获取字节码对象的3种方式:
- Object类的Class getClass()方法
- 例如: Class clazz = student.getClass()
- 类名.class属性
- 例如: Class clazz = Student.class;
- Class类的静态方法forName(String className)
- 例如: Class clazz = Class.forName("com.itheima.Student");
Date类- Date类: 日期类, 表示特定的瞬间, 可以通过方法来设定所表示的时间, 可以表示任意的时间
SimpleDateFormat类- SimpleDateFormat类: 专门用于格式化和解析时间
- 构造方法:
- SimpleDateFormat SimpleDateFormat(String pattern): 创建对象同时指定格式
包装类- 什么是包装类?
- 封装了基本数据类型的类, 提供了更多复杂的方法和变量
- 同时将基本类型的使用转换为了类的面向对象方式
自动装箱和拆箱正则表达式- 什么是正则表达式?
- Pattern类:
- 常用规则: 具体查看API文档的Pattern类
集合- 集合:
- 是一个统称, 包含很多集合的实现类. 根据不同数据结构, 提供了不同的集合类
- 数据结构:
- 体系结构:
- 将不同的集合实现类的共性向上抽取出父类, 从而形成一种体系
Collection接口迭代器Iterator接口:
并发修改异常:
- ConcurrentModificationException
- List接口
泛型- 泛型
- Generic type, 广泛的通用的类型, 具体什么类型由开发者定义
- 好处:
- 作用:
- 用于明确数据类型
- 将运行时才发生的类型转换问题, 提前到了编译时期
foreach(增强for循环)- foreach:
- 增强for的优缺点:
- 优点: 简单快捷的拿到每一个元素
- 缺点:
- 循环过程中不能修改集合
- 不能像普通for循环那样使用索引
栈, 队列- 栈(stack)
- 特点:
- 先进后出(FILO, First In Last Out). 或后进先出(LIFO, Last In First Out)
- 队列(queue)
- 特点:
- 先进先出(FIFO, First In First Out).
ListList的子类
- ArrayList: 底层数组结构. 查询快, 增删慢
- LinkedList: 底层链表结构. 查询慢, 增删快
- 如何选择: 根据数据结构特点
- 查询多, 增删少, 用ArrayList
- 查询少, 增删多, 用LinkedList
- 不知道, 用ArrayList
|
|