类和对象复习重点

1.面向对象的三(四)大特征

1.(抽象)

  • 抽象类:
    (1)用abstract关键字修饰,但abstract和final不能同时使用(因为final声明的类不允许有子类,而abstract抽象类必须有子类)
    (2)抽象类实例化对象,必须通过子类向上转型来实例化对象(抽象类无法直接实例化对象)
    (3)实例类继承抽象类,所有抽象类必须含有子类
  • 抽象方法:
    (1)抽象类可以包含抽象方法
    (2)含有抽象方法的类一定是抽象类,但是含有抽象类不一定含有抽象方法

2.封装

  • 概述:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
  • 封装原则:
    (1)将不需要对外提供的内容都隐藏起来
    (2)把属性隐藏,提供公共方法对其访问
  • 封装的优点:
    (1)提高程序的安全性,保护数据
    (2)可以隐藏代码的实现细节
    (3)统一接口,系统可维护性增加

3.继承

  • 概念:是一个类从另一个类从获得属性和方法的过程
  • 特点:
    (1)继承用extends关键字来实现,子类继承父类,子类(派生类)是父类(基类)的扩展
    (2)Java中只有单继承,没有多继承,子类会继承父类所有的结构
  • 限制:子类对象在进行实例化前首先调用父类构造方法,再调用子类构造方法实例化子类对象

4.多态

  • 定义: 同一方法可以根据发送对象的不同而采取多种不同的行为方式
  • 实现条件:
    (1)有继承关系
    (2)有方法重写(子类重写父类的方法)
    (3)向上造型,重写方法调用,父类引用指向子类对象
  • 静态绑定: 在程序编译过程中,把函数(方法或者过程)调用与响应调用所需的代码结合的过程称之为静态绑定。
  • 动态绑定:在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
    程序运行过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为动态绑定。
  • 动态绑定实现原理:
    (1)GC (2)JVM (3)类加载 (4)反射
    在这里插入图片描述

2.类加载

  • 过程: 装载(加载) -----> 链接 ------> 初始化
  • 条件:
    (1)new (2)main函数类 (3)类名.静态成员 (4)反射

3.final

  • 可以修饰常量,如: final int INITSIZE = 10;
  • 可以修饰方法,如: final void fun(){ } ; 方法不允许重写
  • 可以修饰类,如: final class String{ }; 类不能被继承

4.static的作用

(1)修饰成员变量(静态变量和实例变量)

  • 静态变量和实例变量的区别:
    i.储存位置:
    静态变量 ----> 方法区
    实例变量 ----> 堆区
    ii.静态变量与类有关,一个类只有一份静态变量
    实例变量与对象有关,几个对象几份实例变量
    (2)修饰方法(静态方法和实例方法)
  • 静态方法和实例方法的区别:
    i.调用方式不同 : 类名.静态方法 对象.实例方法
    ii.重写 : 静态方法不能被重写,private方法不被重写
    (3)修饰类 -----> 内部类
    静态内部类和实例内部类的区别: 是否包含外部类对象的this(静态内部类不含this)

5.单例模式

  • 什么是单例模式?
    因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计
  • 单例模式的特点
    i.单例模式只能有一个实例
    ii.单例类必须创建自己的唯一实例
    iii.单例类必须向其他对象提供这一实例

(1)懒汉单例
在被外部类调用时创建实例,类加载速度快,但运行时获取对象的速度慢
(2)饿汉单例
在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值