面向对象

来源:互联网 发布:软件开发职位 编辑:程序博客网 时间:2024/06/16 00:37

面向对象
一、什么是面向对象
* 面向对象的定义:
- 在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的 联系,这种思想就是面向对象。
* 对象:
- 在现实生活中存在的具体的一个事物。
* 类:
- 实际就是对某种类型事物的公共属性与行为的抽取。(类是一个抽象的概念,就相当 于图纸)
* 对象与类的关系:
- 类时对象的模板 - 汽车图纸
- 对象是类的实例 - 各种汽车
* 面向对象的核心思想:
- 找适合的对象做适合的事。
* 面向对象的三大特征:
- 1. 封装
- 2. 继承
- 3. 多态
* 找对象方式:
- 方式一 : sun 给我们定义好了很多的类,我们只需要认识这些类即可创建对象为我 们使用。
- 方式二 : 我们要自定义类, 然后通过自定义的类创建对象为我们服务。
二、如何自定义类创建对象
* 1. 自定义一个类
格式:
class 类名 {
事物公共的属性使用成员变量描述;
事物的公共行为使用函数描述;
}

    1. 通过自定义的类创建对象
      格式:
      类名 变量名 = new 类名();
    1. 对象成员的调用(调用对象的方法或者访问对象的属性)
    2. 成员变量(访问对象的属性)
      对象.属性名;
    3. 成员方法(调用对象的功能)
      对象.函数名();
      三、局部变量和成员变量
  • 成员变量: 定义在方法之外,类之内
  • 注意:成员位置只能用于定义函数或者是定义一个变量,不能写任何的执行语句
  • 局部变量: 定义在方法之内
  • 成员变量与局部变量的区别:
    1. 应用范围
    1. 成员变量在整个类内都有效
  • 2.局部变量只在其声明的方法内有效
    1. 生命周期
    1. 成员变量:它属于对象,它随着对象的创建而创建,随着对象的消失而消失
  • 2.局部变量:使用完马上释放空间
    1. 存储位置
  • 1.成员变量属于对象,它存储在堆内,堆内的实体,当没有引用指向其时,才垃 圾回收清理
  • 2.局部变量存在栈内存中,当不在使用时,马上就会被释放
    1. 初始值
  • 1.成员变量它存储在堆中,如果没有赋初值,它有默认值
    1. 整数byte、short、int、long = 0 ;
    1. char = ‘\uoooo’;
    1. boolean = false;
    1. String = null;
    1. 类类型 = null;
    1. 数组 = null;
    1. 局部变量,如果要想使用必须手动初始化
    1. 方法中,参数列表中,语句中
    1. 必须给初始化值,没有初始值,不能使用
    1. 在栈内存中
  • 五、封装
  • 封装的定义:
  • 隐藏对象的属性与具体的实现细节, 对外提供公共的访问方式。

  • 封装的原因:

    1. 出现了数据安全问题
    1. 根本原因:别人可以对对象的属性进行直接的赋值,赋值之前没有经过任何的判 断。
  • 访问权限修饰符:

  • 访问权限修饰符也就是控制类、属性、 方法的可见范围的。

  • private: 私有的,如果使用了private修饰的函数或者是属性(成员变量),那么被修 饰的成员只能在本类中可见。

  • public :公共的,任何人都可以进行访问。

  • 封装的步骤:

    1. 使用private修饰需要被封装的属性,把属性给隐藏起来。(使用private修饰成员 变量)

        1. 对外提供公共的访问方式。(设置、获取)
  • 命名规范:

set属性名

get属性名

  • 疑问1: 封装都需要提供get与set方法才称作为封装吗?

不一定,看需求而定。

  • 疑问2: 对外提供的设置以及获取属性的方法名一定要叫get、set吗?

不一定,只不过是一个命名规范。

  • 在现实开发中的规范: 一般实体类的所有成员变量都会封装起来。

  • 类:

  • 工具类 : Arrays(数组的工具类), 主要是提供一个方法对外进行访问,方便用户 操作数据。

  • 实体类: 描述一类事物的公共属性与公共行为的, 比如: 人类、 汽车类…

  • 封装的好处:

    1. 提高了数据的安全性。
    1. 提高代码的复用性。
    1. 隐藏了具体的实现, 操作简单了。