9.28-面向对象

核心思想

  • 面向对象是一种常见的思想,符合人们的思考习惯

  • 面向对象的出现将复杂的事情简单化

  • 面向对象的出现将我们的身份由执行者变为了指挥者

    • 面向对象需要关注两个重点

    • 有没有这个对象

  • 这个对象中具不具备这样的功能

面向对象开发(仅了解)

就是不断的创建对象,使用对象,指挥对象做事情,有对象就找这个对象做事情,没有对象就自己创建一个对象,使其拥有这样的功能;其他人也可以使用这个对象。

面向对象设计(仅了解)

其实就是管理和维护对象之间的关系

面向对象的特征(重点)

封装、继承、多态、抽象

类与对象之间的关系

  • 用Java语言对现实生活的事物进行描述,需要通过类的形式来体现。

  • 对于事物的描述通常只关注两个方面:一个是属性,一个是行为(功能/方法);只要明确该类事物的属性和行为定义在类中即可。

类(class)

某一类事物的描述(属性/行为)

对象

该类事物中一个实实在在的个体(实体/实例)

在Java中,通过new关键字来创建

成员变量和局部变量有什么区别

  1. 成员变量定义在类中,整个类都可以访问

  2. 变量定义在方法、语句、局部代码块中,只在所属区域是有效的

  3. 成员变量存储在堆内存的对象中;局部变量存储在栈内存的方法中

  4. 成员变量随着对像的创建而存在,随着对象的消失而消失;局部变量随着所属区域的执行而存在,随着所属区域的结束尔释放。

  5. 成员变量都有默认初始化值;局部变量没有默认初始化值

例子

内存图

Car内存图一
Car内存图2
Car内存图3

private关键字

权限修饰符,权限为私有;用于修饰成员;私有的内容只在本类中有效

例子

封装思想

将属性私有化,对外提供公有的访问方式

注意,将属性私有化仅仅是封装思想的一种体现

构造方法(构造器constructor)

定义构造器的特点

  1. 构造器的名称要与类名一致(包括大小写)

  2. 不需要定义返回值类型

  3. 没有具体的返回值

  4. 构造器定义在类中

作用

给对象进行初始化(给对象中的属性进行赋值)

例子

注意

  1. 默认构造器的特点

  2. 一个类中多个构造器是以"重载"的形式来体现的

    • 重载:同一个类中方法名相同,但是参数列表不同

this关键字

用法一

当一个类中,成员变量和局部变量重名时,可以使用关键字this去区分成员变量

用法二

this还可以在构造器中调用本类的其他构造器

作用

代表当前对象,也就是所在方法所属对象的引用。

简单来说,哪个对象调用了this所在的方法,this就代表哪个对象

例子-例子一接续

最后更新于