day07 面向对象编程(1)

面向对象的理解

学习面向对象的三条主线

  • 类及类的成员:属性、方法、构造器(或构造方法);代码块、内部类

  • 面向对象的三大特征:封装性、继承性、多态性、(抽象性)

  • 其他关键字的使用:this\super\static\final\package\import\abstract\interface

面向对象 vs 面向过程

  • 面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。

  • 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

类与对象

  • 类(Class)和对象(Object)是面向对象的核心概念。

  • 面向对象程序设计的重点是类的设计

  • 类的设计,其实就是类的成员的设计

  • 类是对一类事物的描述,是抽象的、概念上的定义

  • 对象是实际存在的该类事物的每个个体,因而也称为实例(instance)

类的语法格式

 修饰符 class 类名{
     属性声明;
     方法声明;
 }

 

类的内部设计

概念:

  • 属性 = 成员变量 = field = 域、字段

  • 方法 = 成员方法 = method = 函数(function)

  • 对象 = 实例

  • 创建对象 = 类的实例化

如何由类创建对象以及实现功能的调用:

  • 第1步:创建类,并设计类的内部成员。(属性、方法)

  • 第2步:创建类的对象 (或类的实例化)

  • 第3步:通过“对象.属性” 或 “对象.方法()” 的方式,完成功能的实现

对象的内存解析:

  • 对象名的变量保存在栈空间中

  • 对象实体保存在堆空间中,对象的属性也保存在堆空间中。

  • 如果创建类的多个对象,则每个对象拥有一套类的属性。如果修改其中一个对象的属性a的值,不会影响

  • 其它对象的属性a的值。

类的访问机制

  • 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static方法访问非static,编译不通过。)

  • 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。

类的成员之一:属性

格式

修饰符 数据类型 属性名 (= 初始化值);

  • 修饰符:private、缺省、protected、public、static、final

  • 数据类型:任何基本数据类型或任何引用数据类型

  • 属性名:标识符

成员变量 VS 局部变量

 相同点:都是变量,定义的格式相同的。
      都有作用域,在其声明的作用域内是有效的。
  *     不同点:
  *         ① 类中声明的位置不同
  *             成员变量:直接声明在类中
  *             局部变量:方法内部、方法的形参、构造器内部、构造器形参、代码块内部等
  *         ② 在内存中分配的位置不同
  *             成员变量:分配在堆空间中
  *             局部变量:分配在栈空间中
  *         ③ 成员变量声明以后,可以有默认赋值。
  *                 整型:0
  *                 浮点型:0.0
  *                 字符型:0 或 \u0000
  *                 boolean型:false
  *                 引用类型:null
  *
  *           而局部变量在调用前,必须显式赋值,因为没有默认赋值。
  *         ④ 成员变量可以在声明前,添加权限修饰符。
  *           而局部变量不能使用权限修饰符进行修饰。
  *           (此时的权限修饰符有:public \ private \ protected \缺省)

 

posted @ 2021-03-11 10:11  阿年不想做人  阅读(38)  评论(0)    收藏  举报