类和对象的理解

什么是面向对象(名词解释):

  • 面向 Oriented(adj. 以...为导向的,以…为目标的)

  • 对象 Object(n.    物体;目标;客体,对象)

  • 面向对象(Object Oriented)

    • 以对象为导向,围绕对象

  • 面向对象思想、面向对象方法

面向对象相比面向过程的软件开发的优点:

  • 维护性好

  • 扩展性好

  • 重用性好

  • 开发效率高

面向对象定义:面向对象方法是一种以对象为导向,围绕对象来开发应用程序的软件开发方法

面向对象和方法的内涵:

  • 以对象为导向(围绕对象来分析、设计和编码实现应用程序)

  • 封装特性(提高代码维护性)

  • 继承特性(提高代码重用性)

  • 多态特性(提升代码扩展性)

  • 抽象特性(提升开发效率)

 

按软件开发的顺序依次分为:(面向对象开发方法三个部分)

  • 面向对象分析(OOA:Object Oriented Analysis)

  • 面向对象设计(OOD:Object Orented Design)

  • 面向对象编程(OOP:Object Orented Programming)

面向对象的具体方法(面向对象发展过程中逐步产生的)(面向对象开发方法的外延)

  1. Booch面向对象开发方法(1982年由Booch提出)

  2. Coad面向对象开发方法(1989年由Coad和Yourdon提出)

  3. OMT面向对象的建模与设计(1991年由James Rumbaugh提出)

  4. UML统一建模语言(1995-1997年出现)

对象的定义:对象是人们在行动或思考时作为目标的事物

对象的分类:

  • 有形对象

  • 无形对象

计算机中的对象:Object(n.对象,物体;目标;客体)

计算机的对象的定义:计算机中的对象是客观世界中的对象在计算机中的映射

 

 

特征 --> 属性    行为 --> 方法

 

属性和方法的定义:

属性是客观世界对象的特征在计算机中的映射(Property   n. 性质;性能;特性;属性; )

属性的内涵和外延:

  • 内涵

    • 对象的性质

    • 对象间关系

    • 对象数据域

  • 外延

    • 类属性

    • 实例属性

 

方法是客观世界对象的行为在计算机中的映射(Method   n. 方法;条理 )

方法的内涵与外延:

  • 内涵

    • 对象的行为

    • 对象的功能

  • 外延

    • 类方法

    • 实例方法

    • 构造方法

 

抽象思维是人类认识世界的重要思维。

计算机如何理解复杂人类世界?

实际问题抽象化 --> 抽象问题机器化

抽象(Abstract):提取对象之间共同的特征和行为

抽象定义:抽象是从具体事物中抽出共同特征(属性)和行为(方法)的过程

抽象的内涵与外延

内涵:

  • 内涵

    • 共同的属性和方法

    • 角度决定共同点

    • 经过比较

  • 外延

    • 数据抽象:针对对象的特征,抽象为属性

    • 过程抽象:针对对象的行为,抽象为方法

 

 

类的定义:类是经过抽象,得出的具有相同属性和方法的一组对象的集合

类的内涵与外延:

  • 内涵:

    • 多个对象参与

    • 经过抽象

    • 集合

  • 外延:

    • 能否实例化

      • 普通类

      • 抽象类

    • static修饰

      • 非静态类

      • 静态类

    • 定义位置

      • 非嵌套类

      • 嵌套类

    • 有无类名

      • 匿名类

      • 非匿名类

 

类是一个抽象的概念,是对象的模板

  • 对象是类的实例

  • 类是对象的类型(抽象)

Java类将现实世界中的类模拟到计算机程序中(Java类的模板)

包含属性和方法

  • 使用成员变量表述属性(特征)

  • 使用成员方法表述方法(行为)

Java以类为组织单元

  • 所有Java程序都以类class为组织单元

  • 关键字class定义自定义的数据类型

创建和使用对象(使用对象的步骤)

  • 创建对象

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

    • Student stu = null;     stu = new Student();

    • Student stu = new Student();

  • 使用对象成员

    • 引用成员变量:对象名.成员变量名

    • 引用方法:对象名.成员方法名()

 

JVM内存五大区域(运行时数据区Runtime Data Area)

  • 方法区  Method Area

    • 存储已被JVM加载的类信息、常量、静态变量、编译后代码等数据的内存区域。

  • 虚拟机栈  VM Stack

    • 以先入后出方式,存储局部变量表、操作数栈、动态链接、方法出口等信息的内存区域

  • 本地方法栈  Native Method Stack

    • 以先入后出方式,存储非Java语言实现方法的变量、操作数等信息的内存区域。

  • 堆  Heap

    • 以先进先出方式,存放对象实例的内存区域。

  • 程序计数器  Program Counter Register

    • 用于存放下一条指令所在地址的内存区域。

引用数据类型的定义:引用数据类型由基本类型构造封装而成的,其变量指向对象内存地址的数据类型

引用数据类型的内涵与外延:

  • 内涵

    • 栈中存储实际数据的引用

    • 堆中存放实际的数据

    • 通过引用访问对象在内存中的数据

    • 一个对象可以有多个引用

  • 外延

    • 数组

    • 字符串

    • 接口

    • 枚举

    • 注解类型


总结:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值