面向对象知识总结

一 : 方法

概念—类中定义的具有特定功能的代码块

  • 方法—功能
    作用—提高代码的复用性
    格式—修饰符 返回值类型 方法名(参数列表){
    方法体
    return 返回值;
    }
  • 注意: 1 定义方法 先确定需要的原始数据(通过形参来接受)+方法运行结果数据(通过返回值返回)
    2 方法没有返回值的 用void标示
    3 方法由俩部分组成: 方法声明部分(方法使用说明书)+方法体部分(方法功能的静态实现)
    4 方法必须在主方法调用 才能执行

二 : 面向对象

  • 一种编程思想: 写代码、设计软件的套路
    找具有帮助我解决问题功能的对象 指挥对象解决问题
    四部 :
    a:创建类描述一类事物: 通过变量表示数据 通过方法表示功能
    b:根据类创建对象:
    格式:对象类型 引用名=new 构造方法;
    c:给对象的属性赋值
    格式:对象名.属性名=值;
    d:调用对象的方法 解决问题
    格式:对象名.方法名(实参);
class Person{
    int age;
    String name;
    void show(){
        system.out.println("哈哈哈");
    }
    public static void main (String[] s){
        Person p=new Person();
        p.age=11;
        p.name="娃哈哈";
        p.show();
    }
}

三 : 类和对象

  • 类: 代码的载体
    对一类事物的描述
    类是数据和功能的封装
  • 对象: 多个基本数据有机组合形成的整体—复杂数据
    通过类创建的实例
    现实实物在电脑中的模型

四 : 成员

  • 类的组成就是类的成员
  • 类的成员: 成员变量+成员方法(普通方法+构造方法)
  • 成员变量: 在类中定义的变量
  • 局部变量: 方法中定义的变量
  • 成员变量和局部变量的区别:
    A:概念
    B:相同之处:都是变量 来描述数据的
    C:不同之处:
    1 定义位置不同:成员变量-类 局部变量-方法
    2 作用域不同: 成员变量-整个类
    3 是否有默认值: 成员变量有默认值 取决于变量的类型 局部变量没有默认值
    4 可用的修饰符不同: 局部变量只能用final 成员变量可加范围修饰符、static、final

五 : 方法重载 overload

概念: 同一个类中几个方法 方法名相同 参数列表不同的现象

  • 要求: 1 同一个类
    2 方法名必须相同
    3 参数列表必须不同: (参数个数不同 参数类型不同 参数顺序相同)
  • 理解: 几个重载的方法 功能基本相同 只是需要的原始数据不同而已

六 : 构造方法

概念: 用于构建创造对象的方法

  • 格式: 修饰符 类名(参数列表){方法体;}
  • 特点: 1 构造方法名字必须是类名
    2 一个没有定义构造方法 默认有一个无参数的构造方法
    3 构造方法只能被关键字new调用 定义一次创建一个对象
    4 构造方法不能被对象调用
    5 构造方法没有返回值 不用void标示
    6 构造方法的参数列表一般用于给属性赋值

七 : this

  • 理解: 当前对象—用在类的方法体中 标示当前对象
  • 使用场景1: 通过this.成员名 来表示成员
    当前成员变量与局部变量重名,变量名默认指向的是局部变量 通过this.变量名来表示成员变量
    • 注意: 方法中成员前面默认都有this.
  • 使用场景2: 在构造方法中,通过this(参数列表)调用另外一个构造方法
    • 注意: this(参数列表)必须是第一个语句

八 : static

  • 修饰符: 静态的
  • 修饰: 成员变量 普通方法 内部类
  • 类成员:被static修饰的成员
  • 类变量:被static修饰的成员变量
  • 类方法:被static修饰的普通方法
  • 实例成员:没有被static修饰的的成员
  • 实例变量:没有被static修饰的成元变量
  • 实例方法:没有被static修饰的普通方法
  • 类成员类加载时 在静态区域中加载
  • 实例成员创建对象时 在对象内存中加载
  • static修饰的变量:共享数据
    1 不但可以被对象调用 还可以被类直接调用
    2 一旦更改 所有对象的此属性值都更改
  • static修饰的方法:
    1 不但可以被对象调用 还可以直接被类直接调用
    2 静态方法只能定义静态成员 不能调用实例成员

九 : 私有化

概念: 让属性对可信任的类、对象可见 对不可信任的类、对象隐藏

  • 步骤: 1 定义属性是 添加范围修饰符private
    eg:private int age;
    2 提供公共的getter setter方法
    eg:public int getAge(){return this.age;}
    public void setAge(int age){this.age=age;}
    3 不可信任的类和对象 提供getter setter方法间接调用属性

十 : 继承

概念: 定义新类时 如果新类拥有现有的类所有成员 可以让新类从现有的类 派生、衍生

  • 新类: 子类
  • 现有的类: 父类 根类 超类
  • 格式: class 子类 extends 父类{}
  • 特有: 1 子类会继承父类中定义的成员变量+普通方法
    2 子类继承了父类的私有成员 但不能直接调用
    3 子类不能继承父类的构造
    4 子类可以定义父类中没有的成员—子类特有
    5 子类可以重新定义父类已有的成员
    子类重新定义父类已有的成员方法—重写 override
    重写要求: 除了范围修饰符可以扩大 其他方法声明必须和父类
    • 完全相同
      子类重新定义父类已有的成员变量
      要求: 变量名相同即可
      6 java只支持类与类的单继承
      7 如果一个类没有继承其他类 默认继承Object类

十一 : super

  • 理解: 在子类方法中通过super来表示父类
  • 使用场景1: 在子类方法中通过super.成员表示 父类的成员
    当子类重新定义父类成员时 子类中父类的成员被隐藏 通过super.成员来调用父类被隐藏的成员
    子类方法中所有父类成员前面默认有super.
  • 使用场景2: 所有子类构造方法通过super(参数列表)来调用父类的构造方法(把父类中定义的成员加载进子类对象内存中)
    默认是super()调用父类无参的构造方法
    注意:super(参数列表)必须是第一个语句

十二 : final

  • 修饰符:修饰类、成员变量、局部变量、成员方法
    最终的
  • final修饰方法:不能被重写
  • final修饰类: 不能被继承
  • final修饰变量:–常量
    1 没有默认初始值 必须显示赋值
    2 不能二次赋值
    命名规范:所有字母大写 单词之间用_连接
    作用: 增加可读性+简化书写

十三 : abstract

  • 修饰符:修饰类、方法
  • 抽象:信息不完整 笼统模糊
  • 特点: 1 抽象方法不能有方法体
    2 有抽象方法的类必须是抽象类 抽象类可以没有抽象方法
    3 抽象类不能创建对象 只能定义引用
    4 抽象类的子类除非重写所有的抽象方法 否则还是抽象类
    5 抽象类存在的意义 为子类定义规范 让子类继承
    抽象方法存在的意义 为子类方法定义方法声明 让子类根据自己的需求实现方法体
    6 抽象类有构造方法: 不是用于创建本类对象 而是用于创建子类对象时 把抽象类定义的非抽象方法和 成员变量加载进子类对象内存中

十四 : 重载和重写的区别 overload和override的区别

  • 重载:一个类中几个方法 方法名相同 参数列表不同的现象
  • 重写: 子类根据自己的需求 重新定义父类已有的成员方法
  • 相同之处:对应的都是方法
    都要求方法名相同
  • 不同之处:
    1 位置不同:重载:在同一个类中
    重写:在子类中 必须有继承关系
    2 要求不同:重载:方法名相同 参数列表不同
    重写:除范围修饰符可以扩大 其他方法声明必须和父类方法完全一样
    3 影响不同: 重载的方法之间没有影响 只是调用时不能通过方法名区分 只能通过参数列表区分
    重写:子类重写父类的方法 子类中父类的方法会被隐藏
    4意义不同: 重载:几个方法功能基本一致 只是需要的原始数据不同而已
    重写:子类对父类已有的方法进行改进 让其符合子类的需求

十八 : 范围修饰符

关键字                    范围
public 公共的            整个项目
protected 受保护的    本包以及其他包的子类
()省略的                   本包
private 私有的             本类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值