类和对象
1、面向过程
- 注重过程,什么事情都要自己去完成
- 如 C语言
2、面向对象
- 注重类的设计,找一个对象去完成这件事
- 如 Java
3、类和对象
- 类是一个抽象的、不具体的,如汽车图纸
- 对象是真实存在的,是类的实例,如根据图纸造出来的汽车
4、类包含什么
-
属性(成员变量、实例变量)
-
行为(成员方法)
-
方法重载
1.必须在一个类中
2.要求方法名相同
3.参数列表不相同(个数不同、类型不同、类型的顺序不同) -
参数传递
值传递(基本数据类型传递,传递的是值的副本)
引用传递(引用数据类型,传递的是堆里面的地址)
封装
什么是封装?
- 隐藏事物的内部细节,提供对外访问的公共方法
如何实现封装
- 将属性私有化
- 提供对应的get/set方法
构造方法
- 1.创建对象
- 2.创建对象的同时给属性赋值
- 3.所有的类都会有构造方法
- 4.构造方法可以进行重载,如果加了一个有参构造方法,必须显示的加一个无参构造方法
this
- 1.this代表当前对象
- 2.用来区分成员变量和局部变量
- 3.可以修饰成员变量(this.成员变量名)、成员方法(this.方法名)、构造方法(this(形参))
继承
1、什么时继承?
- 允许子类拥有父类的属性和行为
2、继承的优缺点
- 优点:提高代码的复用性
- 缺点:类和类之间的耦合度变高了
3、访问修饰符
- public
- protected
- default
- private
4、super
- 1.当子类和父类属性重名时,可以通过 super.属性名 的方式调用父类的属性
- 2.当子类重写父类的方法后,可以通过 super.方法名 的方式调用父类未重写前的方法
- 3.通过 super(形参) 的方式调用父类的构造方法,默认调用父类无参构造方法
- 4.this代表当前对象,super代表父类对象
5、方法重写
- 什么是方法重写?
如果父类的方法满足不了子类的需求,可以重写父类的方法 - 要求
1.要求子类方法名、参数列表、返回值类型必须与父类一致
2.子类方法的访问修饰符权限不能小于父类
3.子类和父类方法必须同为static或非static
多态
1、什么时多态?
- 1.一个对象的多种形态
- 2.同一个动作作用于不同的对象所产生的行为是不一样的
2、多态的类型
- 1.编译时多态(方法重载)
- 2.运行时多态(程序在运行期间才能确定对象的类型)
3、多态产生的条件
- 1.方法重载
- 2.方法重写
- 3.存在继承关系
- 4.接口的实现
- 5.子类对象的多态性
4、多态的特性
- 1.子类对象的多态性(父类的引用指向子类的实例),Person stu = new Student();
- 2.在编译的时候调用父类的访问,在执行时执行的是子类重写的方法
- 3.编译看左边,运行看右边
- 4.子类和父类的类型转换
向上转型(子类转成父类),Person stu = new Student();
向下转型(父类转成子类),Student stu1 = (Student0) stu;
5、final
- final代表什么
代表最终的意思 - final可以修饰什么?
1.修饰的类不能被继承
2.修饰的方法不能被重写
3.修饰成员变量,成员变量就变成了常量,不会再有默认值
4.修饰局部变量,就变成了常量
6、static
1.成员变量(类变量)
- 类变量随着类的加载而加载,无论创建多少对象,这些对象都共享我这个变量值
- 用static修饰的变量,这个变量就不再属于对象,而属于类本身
- 访问:类名.属性
- 类变量保存在方法区静态域
2.成员方法(类方法)
- 用static修饰的方法,这个方法就不再属于对象,而属于类本身
- 访问:类名.方法名
- 在类方法里面只能调用静态变量或静态方法,不能调用非静态变量和方法
- 在非静态方法里面可以调用静态变量和静态方法
- 不能使用this、super关键字
3.静态代码块
- static{}
- 它随着类的加载而加载,只会执行一次
- JDBC的工具类
抽象类
1、什么是抽象类?
- 抽象类一般当成父类,主要是功能的定义,具体方法的实现交给子类去完成,通过abstract进行修饰
2、抽象类的特点
- 1.抽象方法所在的类必须是抽象类
- 2.抽象类不能实例化
- 3.如果要实现一个抽象类,必须写一个子类继承这个抽象类
- 4.抽象类有构造方法
- 5.继承抽象类以后,子类必须重写抽象类所有的抽象方法(子类非抽象类)
- 6.抽象类可以定义普通方法
3、抽象方法
- 没有方法体,只有方法的定义
接口
1、什么是接口?
- 接口就是一组规范,把不同的类或者不同层次的类具有相同行为的集合在一起
2、怎么定义接口
- 把class变成interface
3、接口的特点
- 1.接口里面的方法都是抽象方法
- 2.接口里面的变量都是常量
- 3.接口就是一特殊的抽象类,不能被实例化
- 4.创建一个类实现接口,重写这个接口的所有抽象方法(抽象类除外)
- 5.接口可以继承接口,继承多个接口
- 6.一个类可以实现多个接口,每个接口之间用 , 隔开,解决类单继承的问题
- 7.接口里面不能定义普通方法,jdk8以后有default概念,可以有方法体
- 8.接口没有构造方法
4、实现类
- 1.实现接口的类就是实现类
- 2.如果一个类继承一个类并且实现了一个接口,那么继承写在接口前面 ,C extends A implements B
PDF下载链接:https://download.csdn.net/download/qq_42629988/12707476
大纲思维导图: