java学习第一周总结
目录
【1】类和对象之间的关系 类好比一个模板 对象是类具体的实现
【2】面向对象三要素:封装、继承、多态
【3】封装
作用:提升代码的安全性、复用性、高聚合、低耦合
类中成员变量 私有化 提供公共的Get和Set方法
【4】继承
作用:提升代码的复用性,重复的代码不用多次写
继承中注意的事项
A、继承使用extends关键字
B、继承父类中所有非静态的方法
C、父类中构造方法是不可以被继承的
D、如果父类中和子类中有相同的成员变量名称,使用super.进行区分调用
E、使用super()调用父类中构造函数
F、java中强调的是单继承
G、方法的重写:(父类中方法,无法满足子类的要求)
父类的方法名和子类的方法名必须一致,参数列表必须一致,返回值等于,权限修饰符大于等于父类,异常列表小于等于父类
H、继承中 代码块 静态代码块 构造器
运行顺序:父类静态 子类静态 父类代码块 父类构造器 子类代码块 子类构造器
【5】多态
作用:提升代码的扩展性、符合开闭原则
发生多态条件:继承、重写、父类引用指向子类对象
多态注意事项:
A、多态中体现的是方法,和属性没有关系
B、如果我们使用多态形式表现 F f=new Zi() f没有办法调用子类中特有的方法,f.aa();aa()是子类中的aa()
C、向上转型 Fu f=new Zi(); 向下转型 Zi z=(Zi) f;
D、向下转型的时候一定需要判断属于哪一个子类对象instanceof 判断
E、使用场景 父类做(参数传递 返回值)
——————————————————————————————————————————————————
【1】this 关键字
A、this 代表当前对象,哪个对象调用的this代表的就是谁
B、this.属性,代表的是当前类中的成员变量
C、this()调用本来中的构造方法
D、This() 使用的时候必须放到代码中的第一行
E、This()不可以和 super()一块使用
【2】static 关键字---静态的
A、可以修饰 成员变量、成员方法、代码块、内部类
B、Static 修饰的内容是属于类的,被,类中所有对象所共享
C、静态修饰的方法和属性,直接使用类名.调用 不需要创建对象
D、Static 修饰的方法只可以直接调用静态方法,使用静态的成员变量
E、如果静态方法中坚持调用非静态内容,可以使用 new 对象方式
F、在静态方法中不可以使用 this 关键字
G、普通代码块每一次实例化对象之前调用(调用多次)
H、静态代码块在类加载后调用,只调用一次
【3】super 关键字
A、super.aa()调用父类中aa方法;super.变量 调用父类中成员变量
B、super() 调用父类中构造函数
C、super() 放到代码第一行
D、super() 不可以和 This() 一块使用
【4】final 关键字---最终的
A、修饰成员变量、方法、类
B、Final 修饰的变量,是一个常量,只可以赋值一次
C、Fianl 修饰的方法,不可以被重写
D、Fianl 修饰的类,不可以被继承
【5】权限修饰符
——————————————————————————————————————————————————
【1】抽象类 作用 就是规范
- 使用abstract修饰的类和方法称为抽象类和抽象方法
- 抽象方法没有方法体
- 一个类继承了抽象类要么重写里面所有的抽象方法,要么这个类也是抽象类
- 抽象类中可以定义非抽象方法
- 抽象类不可以实例化
- 抽象类中有构造函数,为了满足抽象的特性
【2】接口 作用:规范、解决了java中继承的问题
- 接口使用interface表示的
- 接口中定义的变量都是使用 public static final 修饰
- 接口中定义的方法都是公共的抽象的方法
- 接口不可以被实例化
- 接口中没有构造方法
- 接口和类之间 是实现关系 可以多实现
- 接口和接口之间是继承关系,可以多继承
- 类和类之间是继承关系,单继承
- 如何一个类中既有继承又有实现,一定要先继承后实现
- JDK8中可以书写静态的方法和非静态(defaut)方法
- JDK9中可以书写private修饰的方法
【3】内部类
普通内部类
静态内部类
局部内部类
匿名内部类
内部类在生产class文件时名称有一个特点,外部类$内部类.class
——————————————————————————————————————————————————
Object 类中方法
虚拟机中垃圾的回收机制
异常分类
运行时异常
检测时异常
如果异常处理
Try...catch 捕获异常
抛出异常{
定义方法抛出异常 throws
手动抛出异常 throw
}