zoukankan      html  css  js  c++  java
  • 面向对象思想

    面向对象思想

    一、面向对象

    1.1概述

    对象泛指现实中一切事物,每种事物都具备自己的属性行为

    向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。

    1.2举例

    洗衣服:

    面向过程:把衣服脱下来-->找一个盆-->放点洗衣粉-->加点水-->浸泡10分钟-->揉一揉-->清洗衣服-->拧干--> 起来

    面向对象:把衣服脱下来-->打开全自动洗衣机-->扔衣服-->按钮-->晾起来

    区别:

    面向过程:强调步骤。

    面向对象:强调对象,这里的对象就是洗衣机

    1.3特点

    面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。

    三大基本特征,即封装、继承和多态。

    1.4类和对象

    什么是类

    :是一组相关属性行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该 类事物。

    现实中,描述一类事物:

    属性:就是该事物的状态信息。

    行为:就是该事物能够做什么。

    举例:小猫。

    属性:名字、体重、年龄、颜色。

    行为:走、跑、叫。

    什么是对象

    对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性 和行为。

    类与对象的关系

    类是对一类事物的描述,是抽象的

    对象是一类事物的实例,是具体的

    类是对象的模板,对象是类的实体

    1.5 类的定义 

     

    现实世界的一类事物:

    属性:事物的状态信息。

    行为:事物能够做什么。

    Java中用class描述事物也是如此:

    成员变量:对应事物的属性

    成员方法:对应事物的行为

    类的定义格式

    定义类:就是定义类的成员,包括成员变量成员方法

    类的定义格式举例:

    public class ClassName {

    //成员变量

    //成员方法

    }

    1.6对象的使用

    对象的使用格式

    创建对象

    类名 对象名 = new 类名();

    使用对象访问类中的成员:

    对象名.成员变量;

    对象名.成员方法()

     

    二、封装

    2.1 封装概述
    面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性

    2.2 封装的步骤

    1. 使用 private 关键字来修饰成员变量。

    2. 对需要访问的成员变量,提供对应的一对 getXxx 方法 setXxx 方法

    2.3 封装的操作——private关键字 

    private的含义

    1. private是一个权限修饰符,代表最小权限。

    2. 可以修饰成员变量和成员方法。

    3. 被private修饰后的成员变量和成员方法,只在本类中才能访问。

    private的使用格式

    1. 使用 private 修饰成员变量,代码如下:

    2. 提供 getXxx 方法 / setXxx 方法,可以访问成员变量,代码如下:

    private 数据类型 变量名

    2.4this关键字

    this的含义

    this代表所在类的当前对象的引用(地址值),即对象自己的引用。

    记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁

    this使用格式

    this.成员变量名;

     

    三、继承

    3.1定义

    继承:就是子类继承父类的属性行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接 访问父类中的非私有的属性和行为。

    3.2 继承的格式

    通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:

    继承演示,代码如下:

    class 父类 {

    ...

    }

    class 子类 extends 父类 {

    ...

    }

    3.3 继承后的特点——成员变量

    成员变量重名

    子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,修饰 父类成员变量,类似于之前学过的 this

    使用格式:

    super.父类成员变量名

    3.4 继承后的特点——成员方法

    成员方法重名——重写(Override)

    如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)

    方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效 果,也称为重写或者复写。声明不变,重新实现

    3.5 继承后的特点——构造方法

    1. 构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。

    2. 构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构 造方法中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用

    3.6 superthis

     

    父类空间优先于子类对象产生

    在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。目的在于子类对象中包含了其对应的父类空 间,便可以包含其父类的成员,如果父类成员非private修饰,则子类可以随意使用父类成员。代码体现在子类的构 造方法调用时,一定先调用父类的构造方法。理解图解如下:

     

    superthis的含义

    super :代表父类的存储空间标识

    this :代表当前对象的引用

    3.7 继承的特点

    1. Java只支持单继承,不支持多继承

    //一个类只能有一个父类,不可以有多个父类。

    class C extends A{} //ok

    class C extends A,B... //error

    四、多态

    4.1定义

    多态 是指同一行为,具有多个不同表现形式。

    4.2 实现

    1. 继承

    2. 方法的重写

    3. 父类引用指向子类对象

    父类类型 变量名 = new 子类对象;

    变量名.方法名(); 

  • 相关阅读:
    编译 安装 infobright
    MySQL忘记密码恢复密码的实现方法
    Intel 服务器 架构 NUMA
    Centos 卸载 java
    vs2010 无法将文件“obj**”复制到“bin**”
    linux安装eclipse PyDev
    infobright 编译安装
    [转贴]==开手排车的八个绝招==
    [摘]广义企业级PDM系统下的PPM(工艺规划管理)
    中国皇帝定下佛教戒律:僧人不准吃肉
  • 原文地址:https://www.cnblogs.com/kali5k/p/13214819.html
Copyright © 2011-2022 走看看