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