面向对象(oop)

  1. 面向对象 & 面向过程

  • 面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

  • 面向对象: 就是把现实中的事物都抽象为“对象”。每个对象是唯一的,且都可以拥有它的属性与行为。我们就可以通过调用这些对象的方法、属性去解决问题。

2.类 和 对象

  • 对象 对象是由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)组成的封装体,描述客观事物的一个实体,是构成系统的基本单元。

  • 类是对一组有相同数据和相同操作的对象的定义,是对象的模板,其包含的方法和数据描述一组对象的共同行为和属性。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其他类,形成类层次结构。

  • 类和对象的关系

    类是对象的模板,对象是类的具体实例。

  1. 类的定义

    • 类的成员

      1. 成员变量

        • 类变量(static)

        • 实例变量

      2. 成员方法

        • 类方法(static)

        • 实例方法

      3. 成员类/接口

    • 静态初始化、

      • 静态初始化,可以有多个。在类第一次被加载的时候执行, 只执行一次

    • 实例初始化

      • 实例初始化,在实例化的时候执行。每次实例化都会执行

    • 构造函数

  2. static 作用

    使用static修饰的属性称为静态属性或类变量,没有使用static修饰的属性称为实例变量。使用static修饰的属性属于类,不属于具体的某个对象。类属性在类首次被加载时初始化,即没有创建对象,类属性也是存在的。

    static 表示静态的,可以修饰字段和方法。 被static修饰的字段或方法属于类,通过类名调用. 也可以被 对象调用 【但是不推荐】 没有 static 修饰的属于对象,通过对象来调用

    static 成员可以相互调用(使用), non-static(instance)可以互相调用,也可以调用 static 的

    static 成员属于类,多个对象共享。

  • 实例(non-static/instance)

  1. 构造重载

    构造方法(函数)是一个特殊的方法。创建对象(实例化)对象时调用, 可用来初始化类(实例成员)

    [修饰符] 类名([参数列表]){ ​ 方法体 ​ }

  2. 实例化的过程

    • 第一次加载类时进行静态初始化(只执行一次)

    • 每次创建对象时,先进行实例初始化再执行构造 ps: 实例初始化的位置会影响实例变量最终的值(Java代码优化)

    • 执行构造

  3. 遮蔽(shadowing)jls 6.4.1

    • this 解决遮蔽问题

    • className.staticField 解决遮蔽问题

    • 局部变量和成员变量名相同时,优先使用局部变量. 遮蔽(shadowing) 局部名 a 遮蔽了成员变量 a

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值