ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:32.93KB ,
资源ID:7003087      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7003087.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第6章抽象封装与类.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

第6章抽象封装与类.docx

1、第6章抽象封装与类第六章 抽象、封装与类主要内容 一、抽象与封装 二、Java 的类 三、对象的创建与使用 四、参数传递 五、匿名对象1、抽象v 抽象内涵 去除掉对象中与主旨无关的次要部分,或是暂时不予考虑的部分 抽取出与研究工作有关的实质性的内容加以考察v 软件开发方法中所使用的抽象类型 (1)过程抽象 (2)数据抽象(1)过程抽象v 将整个系统功能划分为若干部分,强调功能完成的过程和步骤 面向过程的软件开发方法采用的就是这种抽象方法 使用过程抽象有利于控制、降低整个程序的复杂度 缺点:这种方法本身自由度较大,难于规范化和标准化,操作起来有一定难度,在质量上不易保证(2)数据抽象2、封装v

2、利用抽象数据类型将数据和操作封装在一起 数据被保护在抽象数据类型的内部 系统其他部分只能通过被授权操作与抽象数据交互v 在面向对象程序设计中 抽象数据类型通过“类”来代表 每个类都封装相关的数据和操作v 在实际开发过程中 类常用来构建系统内部的模块 封装特性把类内的数据保护得很严密,模块与模块间仅通过严格控制的界面进行交互 使它们之间耦合和交叉大大减少,从而降低了开发过程的复杂性,提高了效率和质量,减少了可能的错误 保证程序中数据的完整性和安全性主要内容 一、抽象与封装 二、Java 的类 三、对象的创建与使用 四、参数传递 五、匿名对象二. Java的类 1. Java 类概念 2. 类的定

3、义与修饰 3. 域 4. 方法1、Java类概念v 类(Class)和对象(Object)是面向对象程序设计方法中最核心的概念。 类是对某一类事物的描述(共性),是抽象的、概念上的定义; 对象则是实际存在的属该类事物的具体的个体(个性),因而也称为实例(Instance) 。1、Java类概念v 类是Java程序的基本组成要素 封装了一类对象的状态和方法,是该类对象的原型v Java程序设计就是定义类的过程 Java程序中定义的类的数目和功能都是有限的 编程时还需要用到大量系统定义好的类,即Java类库中的类1、Java类概念v 类的构成:类头+类体v 类体由数据成员(属性、域)与函数成员封装

4、而成。 Java语言把数据成员称为域变量、属性、成员变量等; 把函数成员称为成员方法,简称为成员方法。v 举例:圆柱体类。二. Java的类 1. Java 类概念 2. 类的定义与修饰 3. 域 4. 方法(1)定义类v 定义类(声明类) 实际是定义类的静态属性和动态属性(方法)。用户定义一个类实际上就是定义一个新的抽象数据类型。v 必须先定义类,然后才可利用所定义的类来声明相应的变量,并创建对象。(1)定义类v 定义类的语法结构(1)定义类实例v 实例:圆柱体类的定义(2)类的修饰符v Java程序在定义类时,可在class之前增加若干类的修饰符,修饰限定所定义的类的特性v 类的修饰符分为

5、访问控制符和非访问控制符两大类,有些类的修饰符也可以用来修饰类中的域或方法v 本节讨论类的非访问控制符(2)类的修饰符abstractv 抽象类是没有具体对象的概念类v 抽象类不能直接被实例化,一般作为其它类的超类v 举例 假设“鸟”是一个类,它可以派生出若干个子类如“鸽子”、“燕子”、“麻雀”、“天鹅”等 问题:那么是否存在一只实实在在的鸟,它既不是鸽子,也不是燕子或麻雀,它不是任何一种具体种类的鸟,而仅仅是一只抽象的“鸟”呢?(2)类的修饰符abstractv 抽象类是其所有子类的公共属性的集合 使用该特性可提高程序开发和维护效率v 以“鸟”的概念为例 假设需要向别人描述“天鹅”是什么,通

6、常都会这样说:“天鹅是一种脖子长长,姿态优美的候鸟” 可见定义是建立在已知道什么是“鸟”的前提之上 只有在被进一步问及“鸟”是什么时,才会具体解释说:“鸟是一种长着翅膀和羽毛的卵生动物” 而不会在一开始就把“天鹅”描述成“是一种脖子长长,姿态优美,长着翅膀和羽毛的卵生动物”(2)类的修饰符abstract举例v 已有两个类Circle和Rectangle,完成相关参数计算(2)类的修饰符abstract举例v 问题 假设有若干个Circle,以及若干个Rectangle,希望计算它们的总面积 直截了当的做法是将它们分别放到两个数组中,用两个循环,加上一个加法,这种做法不是最理想的 如果还有其它

7、形状,triangle, ellipses等 上述方法显得“累赘” 我们希望有一种统一的表示,例如用一个数组shape ,接受所有的形状,然后用 for(i=0; i 使用 - 销毁,对象完成工作后,将被销毁,所占用的资源将被系统回收。2、对象的使用v 通过对象来引用对象成员的格式如下: 对象名.对象成员 如,volu.radius = 2.8; volu.height = 5;v 如果引用的是成员方法,只要在成员方法名的圆括号内提供所需参数即可,如果方法不需要参数,则用空括号。 如:volu.area()v 一个类多个对象,它们的成员变量分配在不同的内存,因此修改某一对象的成员变量时其他不受

8、影响。2、对象的使用v App6_1.java2、对象的使用v App6_1.java3、在类定义内调用方法v 方法调用 场景一:方法在类定义的外部被调用,在类声明之外用到成员名称时需指明对象; ; 场景二:在类定义内部,方法之间可以相互调用,若在类内部使用类自己的成员时不必指明对象名 举例:3、在类定义内调用方法v 在同一个类的定义里面,某一方法可以直接调用本类的其他方法而不需加对象名。v 若要强调是“对象本身的成员”的话,则可以在成员名前加this关键字,即“this.成员名”。此时this即代表调用此成员的对象。例如:主要内容 一、抽象与封装 二、Java 的类 三、对象的创建与使用 四

9、、参数传递 五、匿名对象四. 参数传递 1、以变量为参数调用方法 2、以数组作为参数或返回值的方法调用1、以变量为参数调用方法v 调用方法并传递参数时,参数其实就是方法的自变量,所以参数要放在方法的括号内来进行传递。 括号内的参数可以是数值型、字符串型,甚至是对象。 方法的参数属于局部变量。1、以变量为参数调用方法举例1v App6_4.java1、以变量为参数调用方法v 若在通过方法调用,将外部传入的参数赋值给类的成员变量,方法的形式参数与类的成员变量同名时, 如何处理?1、以变量为参数调用方法举例2四. 参数传递 1、以变量为参数调用方法 2、以数组作为参数或返回值的方法调用方法的参数传递

10、与返回v 调用对象方法时,要传递参数 在传递参数时,Java 是值传递,即,在调用一个方法时,将表达式的值复制给形式参数 对于引用型变量,传递的值是引用值(可以理解为内存地址),因此方法中对数据的操作可以改变对象的属性v 方法的返回 返回基本类型 返回引用类型,就可以存取对象实体(1)以数组为参数调用方法v 当参数是基本数据类型时,采用传值方式调用;当参数是引用型的变量时,则是传址方式调用。v 传递数组 指明参数是一个数组,实参只给出数组名v 返回值为数组类型的方法。若返回一个一维整型数组,则方法前加int。(1)以数组为参数调用方法v App6_5.java:以一维数组为参数的方法调用,求若

11、干数的最小值。 (2)返回值为数组类型的方法v 将一个矩阵转置后输出。 主要内容 一、抽象与封装 二、Java 的类 三、对象的创建与使用 四、参数传递 五、匿名对象五、匿名对象v 以当一个对象被创建之后,在调用该对象的方法时,也可以不定义对象的引用变量,而直接调用这个对象的方法,这样的对象叫做匿名对象。v 例如: Cylinder volu=new Cylinder(); volu.SetCylinder(2.5, 5,3.14); 若改写为: new Cylinder().SetCylinder(2.5, 5,3.14); 则Cylinder()就是匿名对象。五、匿名对象v 使用匿名对象的

12、两种情况: 如果一个对象只需要进行一次方法调用; 将匿名对象做为实参传递给一个方法调用。v 例:一个程序中有一个getSomeOne方法要接收一个MyClass类对象作为参数,方法的定义如下:Public static void getSomeOne(MyClass c)v 可以用下面的语句调用这个方法。 getSomeOne (new MyClass() );主要内容 一、抽象与封装 二、Java 的类 三、对象的创建与使用 四、参数传递 五、匿名对象编程题v 找出4*5矩阵中值最小和最大的元素,并分别输出其值及所在的行号和列号。编程题v 产生0100之间8个随机整数,并利用冒泡排序法将其升

13、序排序后输出。v 思想:每次比较相邻的数,若次序不对,交换次序。冒泡排序实例编程题v 产生0100之间8个随机整数,并利用冒泡排序法将其升序排序后输出。v 思想:每次比较相邻的数,若次序不对,交换次序。编程题v 从键盘输入一个字符串和一个字符,从该字符串中删除给定的字符。编程题v 编程统计用户从键盘输入的字符串中所包含的字母、数字和其他字符的个数。编程题v 将用户从键盘输入的每行数据都显示输出,直到输入“exit”字符串,程序运行结束拓展:成员变量与局部变量v 成员变量:在类中定义的变量v 局部变量:在方法中定义的变量v 区别: 从语法形式看 成员变量属于类,局部变量是指方法中定义的变量或者参数; 成员变量可以被访问修饰符、static等修饰,而局部变量则不能被他们所修饰; 共同点:都可以被final修饰拓展:成员变量与局部变量v 成员变量:在类中定义的变量v 局部变量:在方法中定义的变量v 区别: 从在内存中的存储

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2