欢迎来到天天文库
浏览记录
ID:39629491
大小:241.50 KB
页数:49页
时间:2019-07-07
《继承与多态Java程序设计及应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章继承与多态5.1类的封装5.2类的继承5.3多态机制5.4接口5.5包5.6内部类5.7本章小结Java程序设计的基本单位是类。类是用来创建对象的模版,它除了把数据和对数据的操作封装成一个整体外,还有另外两个重要的特性:继承和多态。本章的主要内容就是介绍了类的封装、类的继承和与继承有关的多态性、接口及包等重要概念。8/27/20211第5章继承与多态第5章继承与多态Java语言与其他面向对象语言一样,引入了类的概念。Java程序设计的基本单位是类。类是用来创建对象的模版,它包含被创建的对象的属性和功能。类有两种基本的成员:变量和方法,变量用
2、来描述对象的属性,方法用来实现对象的功能。类除了把数据和对数据的操作封装成一个整体外,还有另外两个重要的特性:继承和多态。通过子类可以实现继承。继承是软件复用的一种形式,子类由已存在的父类生成,子类继承父类的属性和功能,并且根据需要对原有的属性和功能加以修改或添加新的属性和功能。而多态是同一个消息可以根据发送消息对象的不同产生多种不同的行为方式。Java通过方法重写、方法重载和接口来实现多态。本章的主要内容就是介绍了类的封装、类的继承和与继承有关的多态性以及接口等重要概念。8/27/20212第5章继承与多态第5章继承与多态5.1类的封装封装(E
3、ncapsulation)是将代码及其处理的数据绑定在一起的一种编程机制。这种机制保证了程序和数据都不受外部干扰且不被误用Java封装的基本单元是类。可以阻止外部定义的代码随意访问内部代码和数据使类或模块的可重用性大为提高访问权限指本类中的成员可以被哪些类访问private私有的Protected保护的Public公共的友好8/27/20213第5章继承与多态第5章继承与多态5.1类的封装类的封装封装(Encapsulation)是将代码及其处理的数据绑定在一起的一种编程机制。Java封装的基本单元是类。可以阻止外部定义的代码随意访问内部代码和数
4、据使类或模块的可重用性大为提高需要注意的是,既然类的目的是封装复杂性,在类的内部就应该有隐蔽实现复杂性机制。类中的每个方法或变量都可以被标记为私有(private)或公有(public)。类的公共接口代表类的外部用户需要知道或可以知道的每件事情;私有方法和数据仅能被一个类的成员代码所访问,其他任何不是类的成员的代码都不能访问私有的方法或变量。既然类的私有成员仅能被程序中的其他部分通过该类的公共方法访问,就可以保证不希望发生的事情就一定不会发生。当然,公共接口应该小心仔细设计,不要过多暴露类的内部内容。8/27/20214第5章继承与多态5.1类的
5、封装访问权限访问权限指本类中的成员可以被哪些类访问。类有两种重要的成员:成员变量和方法。这种访问权限控制实现了一定范围内的信息隐藏。private私有的Protected保护的Public公共的Friendly友好的表5.1不同范围的访问权限比较被本类访问被子类访问被同一包中的其他类访问被所有类访问private允许不允许不允许不允许protected允许允许允许不允许public允许允许允许允许友好允许不允许允许不允许8/27/20215第5章继承与多态5.1.2访问权限私有的(private)privateprivateVar;private
6、privateMethod([paramlist]){……}用关键字Private修饰的成员变量和方法被称为私有变量和私有方法类中限定为private的成员变量和方法只能被这个类本身的方法访问,不能在类外通过名字来访问。(例5-1)对于私有成员变量和方法,只有在本类中创建该类的对象时,这个对象才能够访问自己的私有变量和类中的私有方法。(例5-2)同一个类的不同对象可以访问对方的private成员变量或调用对方的private方法,这是因为访问保护是控制在类的级别上,而不是对象的级别上。另外,对于构造方法,我们也可以限定它为private。如果一个
7、类的构造方法声明为private,则其他类不能生成该类的一个实例。8/27/20216第5章继承与多态5.1.2访问权限保护的(protected)protectedprotectedVar;protectedprotectedMethod([paramlist]){……}用protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法。类中限定为protected的成员可以被这个类本身,它的子类(包括同一个包中以及不同包中的子类)以及同一个包中所有其他的类访问。如果一个类有子类,如果都想让子类能够访问自己的某些成员,而不管子类是否与
8、自己在同一个包中,就应该将这些成员声明为private访问类型。当然也可以将其声明为public。但这样一来,所有的类都能访问,这并不是
此文档下载收益归作者所有