《Java类的特性一》PPT课件.ppt

上传人:sh****n 文档编号:6610980 上传时间:2020-02-29 格式:PPT 页数:36 大小:639.31KB
返回 下载 相关 举报
《Java类的特性一》PPT课件.ppt_第1页
第1页 / 共36页
《Java类的特性一》PPT课件.ppt_第2页
第2页 / 共36页
《Java类的特性一》PPT课件.ppt_第3页
第3页 / 共36页
点击查看更多>>
资源描述
第二讲类的特性 类的封装类的继承类的多态 知识点成员的访问控制静态变量和静态方法继承的产生继承与构造方法方法覆盖方法重载重点继承方法覆盖 方法重载 本讲概要 1访问限制符 数据的隐藏通过访问控制符来控制 类也可以通过访问控制符来限制其可访问性 访问权限修饰符修饰成员变量和方法 public 表明该成员变量和方法是共有的 能在任何情况下被访问 protected 必须在同一包中才能被访问 friendly 在这种情况下 同protected private 只能在本类中访问 例3 7使用protected修饰符的实例packagemy mylib publicclassmymodif protectedintweight protectedintf inta intb returna b classyoumodif voidgo mymodifa newmymodif a weight 100 合法a f 3 4 合法 publicclassTestprivate privateintmoney Testprivate money 2000 privateintgetMoney returnmoney publicstaticvoidmain Stringargs Testprivatete newTestprivate te money 3000 合法intm te getMoney 合法System out println money m 例3 8使用private修饰符的实例一 classTestprivate privateintmoney Testprivate money 2000 privateintgetMoney returnmoney publicclassprivatedemo publicstaticvoidmain Stringargs Testprivatete newTestprivate te money 3000 非法intm te getMoney 非法System out println money m 例3 9使用private修饰符的实例二 classTestprivate privateintmoney 私有属性publicintgetMoney 公共的方法returnmoney publicvoidsetMoney intm 公共的方法money m publicclassprivatedemo1 publicstaticvoidmain Stringargs Testprivatete newTestprivate te setMoney 2000 合法intm te getMoney 合法System out println money m 例3 10使用private修饰符的实例三 2访问权限修饰符修饰类 不能用protected和private修饰类 用friendly修饰的类叫友好类 在另外一个类中使用友好类创建对象时 要保证它们在同一包中 使用public修饰的类 可以被任何类使用 2访问权限修饰符修饰类 子类与父类在同一包中 此时声明为private的变量与方法不能被继承 访问 子类与父类不在同一包中 此时private与friendly均不能被继承 访问 protected与public可以 3静态变量和静态方法 类变量指的是用 static 修饰符声明的变量 叫静态变量 也称类变量 类变量属于类的 是该类所有对象共享的变量 而实例变量是属于实例对象个体的 例3 11定义一个帐户类 带类变量的publicclassAccount staticdoubleminBalance 100 类变量doublecurrentBalance 实例变量Account doublec balance currentBalance c balance voidsaveMoney doublemoney currentBalance currentBalance money getMoney方法的功能是获得要取出的钱数 同时要保证结余大于最小结余doublegetMoney doublemoney currentBalance currentBalance money if currentBalance minBalance System out println 结余不能少于 minBalance currentBalance currentBalance money money 0 0 returnmoney 编写测试类AccountInstance publicclassAccoutInstance publicstaticvoidmain Stringargs AccountmyAccount newAccount 600 AccountyouAccount newAccount 100 Account minBalance 20 myAccount minBalance 20 System out println myAccount getMoney 100 System out println youAccount getMoney 30 动物类层次举例 4继承的概念 图 一般 具体 动物 蛇 蜥蜴 鲸 爬行动物 哺乳动物 狗 巨蜥 壁虎 壁虎 是一种 蜥蜴 爬行 动物是 动物的 一种 类的继承 4类的继承 通过继承可以实现代码的复用 父类或超类 superclass 被继承的类子类 subclass 由继承而得到的类一个父类可以同时拥有多个子类 但由于Java中不支持多重继承 所以一个类只能有一个直接父类 格式 classSubClassextendsSuperClass 把SubClass声明为类SuperClass的直接子类 如果SuperClass又是某个类的子类 则SubClass同时也是该类的间接子类 子类的定义 示例 app3 2 java圆柱体类Cylinder的子类classCylextendsCylinder 定义子类 圆柱体类CylinderclassCylinder 定义Cylinder类 doubleradius 定义成员变量radiusintheight 定义成员变量heightdoublepi 3 14 voidarea 定义无返回值的方法area 用来计算圆柱底面积 System out println 底面积 pi radius radius doublevolume 定义返回值为double型的方法volume 计算体积 return pi radius radius height publicclassapp3 2 定义公共类 publicstaticvoidmain Stringargs 程序执行的起始点 Cylvolu volu newCyl 创建新的对象volu radius 2 8 赋值圆柱volu的底半径volu height 5 赋值圆柱volu的高System out println 底圆半径 volu radius 输出底圆半径System out println 圆柱的高 volu height 输出圆柱的高System out print 圆柱 volu area 输出面积System out println 圆柱体体积 volu volume 输出体积 5继承与构造方法 与类的其他方法一样 构造方法也可以继承 继承的原则如下 1 如果子类没有定义构造方法 则继承父类无参数的构造方法 即将父类无参数的构造方法作为自己的构造方法 2 如果子类定义了构造方法 无论是无参数的构造方法还是带参数的构造方法 在创建子类对象时 首先执行父类的无参数的构造方法 然后再执行自己的构造方法 例3 14子类继承父类的无参数构造方法 classFather Strings RunconstructormethodofFather publicFather 构造方法System out println s 父类 子类 classSonextendsFather publicvoidoutput System out println Runoutput methodofSon classMyClass publicstaticvoidmain Stringargs Fatherobfather newFather Sonobson newSon obson output 6类的多态 方法重载所谓的方法重载是指在一个类中可以定义几个具有相同的方法名 而形参不同 数目不同或类型不同 的方法 这种情形称为方法重载 例3 17完善Clock类 带方法重载 publicclassClock 成员变量 构造方法 方法重载publicvoidsetTime intnewH intnewM hour newH minute newM publicvoidsetTime intnewH intnewM intnewS hour newH minute newM second newS 方法用来描述对象的行为publicvoidshowTime System out println hour minute second Clock类方法重载的使用 publicclassClockInstance publicstaticvoidmain Stringargs 创建对象的同时 调用构造方法 Clockpower1 newClock 13 20 30 Clockpower2 newClock 8 20 10 power1 setTime 15 30 power2 setTime 6 30 50 power1 showtime power2 showtime showTime System out println hour minute second Clock intH intM intS hour H minute M second S setTime intnewH intnewM hour newH minute newM setTime intnewH intnewMintnewS hour newH minute newM second newS 方法覆盖 methodoverride 方法覆盖是指在子类中定义一个与父类中方法相同的方法 从而使父类中的方法不能被继承 6类的多态 父类定义 publicclassclock inthour minute second publicvoidsetTime intnewH intnewM intnewS hour newH minute newM second newS 方法用来描述对象的行为publicvoidsetTime intnewH intnewM hour newH minute newM 方法用来描述对象的行为publicvoidshowTime System out println hour minute second 方法覆盖 methodoverride publicclasssubClockextendsClock publicvoidshowTime System out println 现在时间是 System out println hour minute second 例 subClock类方法覆盖的使用publicclassClockInstance publicstaticvoidmain Stringargs 创建对象的同时 调用构造方法 Clockpower1 newClock Clockpower3 newsubClock power1 setTime 15 30 power3 setTime 8 20 30 power1 showtime power3 showtime 方法覆盖 methodoverride 方法覆盖如果子类不需使用从父类继承来的方法的功能 则可以声明自己的同名方法 称为方法覆盖覆盖方法的返回类型 方法名称 参数的个数及类型必须和被覆盖的方法一摸一样 方法覆盖 方法重载方法覆盖实例变量和类变量实例方法和类方法 知识小结 课堂练习 classDemo2 inta b intmethod returna b intmethod intc returna b c intmethod intc intd returna b c d 课堂练习 classParent voidm System out println methodinparent publicclassEx10extendsParent voidm System out println methodinEx10 publicstaticvoidmain String args Ex10child newEx10 child m Parentparent newParent parent m 练习 设计一个简单的Java类 要求如下 1 申明一个类MyCircle 用来描述园 该类应该能够描述圆的半径 以及进行一些圆的相关操作 计算圆的面积及周长 2 为类MyCircle声明两个构造器 其中一个能够将圆的半径初始化为1 另一个能传入的参数初始化半径值 3 声明一个测试类TestMyCircle 分别调用两个不同的构造器创建类MyCircle的两个对象 并对他们进行相关的操作 练习题 3 1选择题2 5 6 73 2简答题 4 6 8 11 谢谢
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!