面向对象基础

1.什么是对象

各个程序

  • 程序是为了模拟现实世界,解决现实问题而使用计算机语言编写的指令集合。

(1)现实世界的组成

  • 世界是由什么组成的?
    有人说:“世界是由无数原子组成的”。
    有人说:“世界是由无数事物组成的”。
    有人说:“世界是由无数物体组成的”。
    有人说:“世界是由一切有生命的和一切没有生命的组成的”。
    有人说:“你、我、他、大家组成的”。
  • 所有回答都很抽象,没有特别明确的答案。
  • 在程序员的眼里,世界的组成最为明确:“世界是由无数个对象组成的”。

(2)什么是对象

  • 面向对象思想(Object Oriented Programming):
    一切客观存在的事物都是对象,万物皆对象。
    任何对象,一定具有自己的特征和行为。
    对象

(3)现实中的对象

  • 以下对象都有的属性和方法
    对象的属性方法

(4)程序中的对象

  • 如何使用程序模拟现实世界,解决现实问题?
    • 首先,在程序当中,必须具有和现实中相同的对象,用以模拟现实世界。
    • 然后,使用程序中的对象代表现实中的对象,并执行操作,进而解决现实问题。
      模板对象
  • 现实中的对象多数来自于“模板”,程序中的对象也应该具有“模板”。

2.什么是类

汽车设计参考图

(1)类的抽取

  • 在一组相同或类似的对象中,抽取出共性的特征和行为,保留所关注的部分。
    狗的参考图

(2)类的定义

举例图

3.类的组成

(1)对象的创建

参考图

(2)类与对象的关系

参考图

  • 类:定义了对象应具有的特征和行为,类是对象的模板。
  • 对象:拥有多个特征和行为的实体,对象是类的实例。

(3)实例变量

  • 思考:之前学习局部变量时,要求必须先赋值再使用,否则编译错误。对于实例变量而言,未赋值并不会编译错误,能否直接访问?
    参考图

(4)实例变量与局部变量的区别

局部变量和实例变量区别图

(5)实例方法

  • 对象的实例方法包含两部分:方法的声明和方法的实现。
    • 方法的声明:
      • 代表对象能做什么。
      • 组成:修饰符 返回值类型 方法名(形参列表)
    • 方法的实现:
      • 代表对象怎么做:即如何实现对应的功能。
      • 组成:{ 逻辑代码 }

4.方法重载

(1)方法重载概念

  • 有些情况下,对象的同一种行为可能存在多种实现过程。
  • 例如:人对象的“吃”行为,吃饭和吃药的过程就存在差异。
    参考图

(2)方法重载

  • 重载(Overload):一个类中定义多个相同名称的方法。
  • 要求:
    • 方法名称相同。
    • 参数列表不同(类型、个数、顺序)。
    • 与访问修饰符、返回值类型无关。
  • 调用带有重载的方法时,需要根据传入的实参去找到与之匹配的方法。
  • 好处:灵活、方便、屏蔽使用差异。

5.构造方法

(1)代码调错

  • 思考:以下方法是不是重载?
    public void m(int a){}
    public void m(int b){}
  • 两个方法的方法名称和参数列表都相同,只有参数名称不一样,编译报错。
  • 注意:只是参数名称不同,并不能构成方法的重载。

(2)构造方法

  • 构造方法:类中的特殊方法,主要用于创建对象。
  • 特点:
    • 名称与类名完全相同。
    • 没有返回值类型。
    • 创建对象时,触发构造方法的调用,不可通过句点手动调用。
  • 注意:如果没有在类中显式定义构造方法,则编译器默认提供无参构造方法。

(3)对象创建过程

参考图

(4)对象的内存分配

参考图

(5)构造方法重载

  • 构造方法也可重载,遵循重载规则。
    参考图

(6)默认构造方法

参考图

(7)构造方法为属性赋值

参考图

6.this关键词

(1)this关键字

参考图

  • this第一种用法:调用实例属性、实例方法。如:this.name、this.sayHi()
    参考图
  • this第二种用法:调用本类中的其他构造方法。如:this()、this(实参)
    参考图

总结

  • 什么是对象:
    • 一切客观存在的事物都是对象,万物皆对象。
  • 什么是类:
    • 定义了对象应具有的特征和行为,类是对象的模板。
  • 什么是方法重载:
    • 方法名相同、参数列表不同。
  • 什么是构造方法:
    • 类中用于创建对象的特殊方法,名称与类名相同,没有返回值,不可通过句点调用。
  • 什么是this关键字:
    • 代表当前实例,通过this.访问实例成员;通过this()/this(xxx)访问本类中的其他构造方法。

相关推荐

  1. 面向对象基础概念

    2024-02-22 16:30:02       11 阅读
  2. Python 基础教程:面向对象

    2024-02-22 16:30:02       17 阅读
  3. PHP面向对象基础之类、对象基本特点

    2024-02-22 16:30:02       35 阅读
  4. C#-面向对象基本概念

    2024-02-22 16:30:02       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 16:30:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 16:30:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 16:30:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 16:30:02       20 阅读

热门阅读

  1. C#中的`out`关键字

    2024-02-22 16:30:02       25 阅读
  2. Mongodb $text详解

    2024-02-22 16:30:02       26 阅读
  3. 深入理解CAS

    2024-02-22 16:30:02       34 阅读
  4. 05 SS之结合SS+Redis+JWT实现认证

    2024-02-22 16:30:02       24 阅读
  5. 【软考】类

    2024-02-22 16:30:02       29 阅读