ch03_面向对象编程.ppt_第1页
ch03_面向对象编程.ppt_第2页
ch03_面向对象编程.ppt_第3页
ch03_面向对象编程.ppt_第4页
ch03_面向对象编程.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章面向对象编程 Java程序设计 本章主要内容 面向对象的编程思想类与对象构造方法静态成员类的继承抽象类和接口多态 结构化程序设计 结构化程序设计按照结构化方法的思路 采用 自顶向下 逐步求精 的方法 可以把问题描述中的系统分解为一系列的模块 通常由若干个程序模块组成 每个程序模块都可以是子程序或函数 结构化方法强调功能抽象与模块化 因而结构化方法看作一系列处理的过程 也就是以模块 即过程 为中心的开发方法 数据和功能分离 代码难于维护和复用 面向对象程序设计 面向对象程序设计面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物 采用人类在认识客观世界的过程中普遍运用的思维方法 直观 自然地描述客观世界中的有关事物 基本组成单位是类程序在运行时由类生成对象 对象是面向对象程序的核心对象之间通过发送消息进行通信 互相协作完成相应功能 对象与类 对象现实世界中万物皆对象都具有各自的属性 对外界都呈现各自的行为程序中一切都是对象都具有标识 identity 属性和行为 方法 通过一个或多个变量来保存其状态通过方法 method 实现他的行为类将属性及行为相同或相似的对象归为一类类是构造对象的模板 对象是类的具体实例类可以看成是对象的抽象 代表了此类对象所具有的共有属性和行为在面向对象的程序设计中 每一个对象都属于某个特定的类 对象与类 面向对象的基本特征 面向对象的基本特征主要有封装性 继承性和多态性 封装就是把对象的属性和行为结合成一个独立的单位 并尽可能隐蔽对象的内部细节 继承是一种联结类与类的层次模型 继承性是指子类的对象拥有其父类的属性和行为 多态性是指使用相同名字定义了不同的方法 多态性实际上提供了一种具体情况具体分析的问题解决方案 具体来说 多态性是指类中同一函数名对应多个具有相似功能的不同函数 可以使用相同的调用方式来调用这些具有不同功能的同名函数 类的定义 声明形式 public abstract final class类名称 extends父类名称 implements接口名称列表 变量成员声明及初始化 方法声明及方法体 类的定义 用class关键字定义一个类 例如 classPerson 成员变量定义privateintid privateintage 20 方法定义publicintgetAge returnage publicvoidsetAge inti age i publicintgetId returnid 类的定义 类的定义主要由两方面组成 成员变量和方法 声明成员变量的格式为 type defaultValue 例如 privateintid privateintage 20 声明方法的格式为 例如 publicintgetAge returnage 成员变量 成员变量可以使用Java语言中任何一种数据类型 包括基本类型和引用类型 在定义成员变量时可以对其初始化 如果不对其初始化 Java使用默认的值对其初始化 右图 成员变量的作用范围为整个类体 方法 Java的方法类似于其它语言的函数 是一段用来完成特定功能的代码片段 声明格式 修饰符1修饰符2 返回值类型方法名 形式参数列表 Java语句 注意 如无返回值 必须给出返回值类型void Java语言中使用下述形式调用方法 对象名 方法名 实参列表 实参的数目 数据类型和次序必须和所调用方法声明的形参列表匹配 return语句终止方法的运行并指定要返回的数据 Java中进行函数调用中传递参数时 遵循值传递的原则 基本类型传递的是该数据值本身 引用类型传递的是对对象的引用 而不是对象本身 引用 Java语言中除基本类型之外的变量类型都称为引用类型 Java中的对象是通过引用对其操作的 例如 声明了一个String类型的引用变量 但并没有使它指向一个对象 Strings 使用new语句创建了一个String 类型的对象并用s指向它 以后可以通过s完成对其的操作 s newString helloworld 对象的创建和使用 必须使用new关键字创建对象 Personperson newPerson 使用对象 引用 成员变量来引用对象的成员变量 person age使用对象 引用 方法 参数列表 来调用对象的方法 person setAge 23 同一类的每个对象有不同的成员变量存储空间 同一类的每个对象共享该类的方法 构造方法 使用new 构造方法创建一个新的对象 构造方法是定义在Java类中的一个用来初始化对象的方法 构造方法与类同名且没有返回值 例如 Person类的构造函数 publicclassPerson intid intage Person intn inti id n age i 构造方法的调用 创建对象时 使用构造方法初始化对象的成员变量 publicclassTest publicstaticvoidmain Stringargs Persontom newPerson 1 25 Personjohn newPerson 2 27 默认构造方法 当没有指定构造方法时 编译器为类自动添加一个构造方法 形式如 类名 如果已有 编译器就不再添加了 例如 classPoint publicintx publicinty Pointp newPoint 调用过程演示 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 TestBirthdate Test java 调用过程演示 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 9 堆内存 110925 9 587934 test date d1 354752 d2 main change1 i 栈内存 调用过程演示 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 调用过程演示 堆内存 110925 9 587934 354752 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 test date d1 d2 main 栈内存 调用过程演示 587934 堆内存 110925 9 587934 test date d1 354752 d2 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 main change2 b 栈内存 调用过程演示 587976 堆内存 110925 9 587934 test date d1 354752 d2 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 main change2 b 栈内存 调用过程演示 堆内存 110925 9 587934 354752 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 test date d1 d2 main 栈内存 调用过程演示 354752 堆内存 110925 9 587934 test date d1 354752 d2 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 main b change3 栈内存 调用过程演示 354752 堆内存 110925 9 587934 test date d1 354752 d2 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 main b change3 栈内存 调用过程演示 10 堆内存 110925 9 587934 354752 Testtest newTest intdate 9 BirthDated1 newBirthDate 7 7 1970 BirthDated2 newBirthDate 1 1 2000 test change1 date test change2 d1 test change3 d2 publicvoidchange1 inti i 1234 publicvoidchange2 BirthDateb b newBirthDate 22 2 2004 publicvoidchange3 BirthDateb b setDay 22 test date d1 d2 main 栈内存 对象的创建和使用的小结 必须使用new关键字创建对象 使用对象引用 成员变量或来引用对象的成员变量 使用对象引用 方法 参数列表 来调用对象的方法 同一类的每个对象有不同的成员变量存储空间 同一类的每个对象共享该类的方法 TestCircle java 方法的重载 方法的重载是指一个类中可以定义有相同的名字 但参数不同的多个方法 调用时 会根据不同的参数表选择对应的方法 例如 在Person类中添加如下方法 voidinfo System out println Myidis id voidinfo Stringt System out println t id age 运行如下程序publicclassTest publicstaticvoidmain Stringargs Personp newPerson 1 20 p info p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论