资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
吉首大学软软件服务务外包学院第三讲:封装性主讲:覃遵跃清华大学出版社利用案例轻松学习Java语言(2013年) 配套课件PPT吉首大学软软件服务务外包学院课程导入前面的程序中,对象可以引用任何数据成员和成员方法,如何限 制对象是否能够访问数据成员和成员方法是我们本次课要解决的主 要问题。(1)类的设计;(2)定义构造方法,利用构造方法实例化对象;1、已经学习的相关知识2、思考问题(3)创建对象,并引用对象的数据成员和成员方 法;吉首大学软软件服务务外包学院吉首大学软软件服务务外包学院3.1 面向对象编程三大特征通过类封装对象的数据成员和成员方法, 保证只 有可信的类或者对象能够访问这些方法和数据成员, 对不可信的类或者对象进行信息隐藏。继承是从已有的类中派生出新的类,新的类能 吸收已有类的数据成员和方法,并能扩展新的能力 。多态性是指不同的对象,收到同一消息可以产 生不同的结果。吉首大学软软件服务务外包学院3.2 面向对象编程的封装性但在前面的案例Student类中,外部程序可以很方便的访问类的内部成 员,没有达到信息隐藏的目的。访问数据成员:std1.name 访问成员方法:std1.printInfo() 访问构造方法:new Student()定义类时,在数据成员和成 员方法前设置访问权限控制符, 保证只有可信的类或者对象能够 访问这些数据成员和成员方法, 而不可信的类或者对象不能访问 ,达到信息隐藏的目的。封装性?没有限制, 都可吃!有限制,允许 可以吃问题1:有哪些访问权限控制符?吉首大学软软件服务务外包学院3.2 面向对象编程的封装性在Java语言中,利用访问权限控制符private来实现封装功能,确 保外部程序不能直接访问数据成员或者成员方法。封装数据成员: private 数据类型 数据成员名称;封装成员方法: private 方法返回值 方法名称(参数列表) private 类名(参数列表) 封装构造方法private封装结果 :利用private修饰的数据成员和方法只能在类体中访问,而在类体 外不能访问。注意!吉首大学软软件服务务外包学院3.2 面向对象编程的封装性案例3-1:利用private实现数据成员和成员方法的封装。封装数据成员封装成员方法在TestStudent类中引用类Student 封装的printName()方法报错在TestStudent类中引用类 Student封装的name成员报错吉首大学软软件服务务外包学院3.3 setter与getter方法利用private访问权限控制符修饰的任何部分都只能在类体中访问, 不能在类的外部访问。 private只是实现封装性 的一种措施,不同的封 装层次将采用不同的方 法,在后面将详细介绍 不同封装层次的解决办 法。类体中访问如何在类类外部访问访问 私有数据成员员?setter方法对私有 数据成员进 行修改getter方法来读读取 私有数据成员问题2:什么是setter方法和getter方法?吉首大学软软件服务务外包学院3.3 setter与getter方法案例3-2:利用setter方法和getter方法访问 Student类中的私有数据成员 。封装数据成员 namegetter方法取得封装 namesetter方法修改 封装namename被封装,不 能在类类外部访问访问age没有被封装, 可以在类类外部访问访问课堂练习1:设计手机类 ,把所有数据成员设置 为私有成员,利用 setter和getter方法来 操作这些私有成员。吉首大学软软件服务务外包学院3.4 this关键字在定义类时义类时 ,可能存在几种情 况成员员方法的形式 参数名与数据成 员员同名构造方法的形式 参数与数据成员员 同名成员员方法中的局部 变变量与数据成员员同 名this关键键字解 决吉首大学软软件服务务外包学院3.4 this关键字this就是本身对象 的一个指针构造方法的第一条语句吉首大学软软件服务务外包学院3.5 课堂小结2、封装的作用与机制?3、在类体外如何修改读取被private封装的数据成员?通过getter方法读取被private封装的数据成员; 通过setter方法修改被private封装的数据成员。4、this的作用?封装、继承和多态。1、面向对象编程的三大特征?通过封装类的数据成员和成员方法, 保证只有可信的类或者对象能 够访问这些方法和数据成员,对不可信的类或者对象进行信息隐藏。(1)引用本类的数据成员和成员方法;(2)调用本类的构造方法; (3)表示当前对象,即当前对象的地址。吉首大学软软件服务务外包学院3.6 作业1、定义动物Animal类,动物的属性有属种名称、动物昵称、年龄、肤 色和体重,行为有吃某种事物、在什么时间休息、在哪里玩耍等。要求(1 )所有的数据成员封装成私有成员;(2)有一个空构造方法,有属种名称 和动物昵称的构造方法,有属种名称、动物昵称、年龄、肤色和体重的构造 方法并该构造方法调用前面的构造方法;(3)写出所有数据成员的setter和 getter方法;(4)把动物的行为写出成员方法,并加入适当的参数;(5) 写printInfo()方法输出动物的信息;(6)在测试类中,新建一个动物对象, 并修改该对象的体重为20;测试所有的功能性方法(即除构造方法、setter 方法和getter方法之外的所有方法);输出动物的信息。1、this关键字实现对象的比较?
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号