Java初级教程第七章面向对象.ppt

上传人:max****ui 文档编号:6359809 上传时间:2020-02-23 格式:PPT 页数:33 大小:2.14MB
返回 下载 相关 举报
Java初级教程第七章面向对象.ppt_第1页
第1页 / 共33页
Java初级教程第七章面向对象.ppt_第2页
第2页 / 共33页
Java初级教程第七章面向对象.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
Java语言基础第七章面向对象 static关键字封装继承extends方法重写super关键字向上转型向下转型 上章内容 多态包的使用package关键字import关键字抽象类abstract关键字接口 本章内容 什么是多态多态顾名思义即为多种形态的意思Java中多态的含义发送消息给某个对象 让这个对象自行决定采用哪种行为响应这个消息子类对象的引用赋值给父类引用变量来实现动态的方法调用Java中形成多态的前提继承重写向上转型 多态的概念 多态的应用 动物园有这些动物 狗 兔子等 饲养员每天都会给这些动物喂食 狗喜欢吃骨头 而兔子喜欢吃胡萝卜 通过Java程序模拟饲养员喂食参考代码 案例 Animal java 案例 Food java 案例 Rabbit java Dog java 案例 Carrot java Bone java 多态的应用 提高代码的可重用性降低模块之间的耦合度 多态的作用 形状类Shape需要提供用于计算面积和周长的方法 但是形状本身没有被确定 那么计算周长和面积的方法就无法确定 此时我们就需要使用抽象类和抽象方法 由于Shape类计算周长和面积的方法无法确定 那么就可以将这样的方法声明为抽象的 以便在具体的子类中进行实现 抽象方法的声明 修饰符 abstract返回值类型方法名 参数列表 注意 因为抽象方法无法确定具体执行的功能 所有抽象方法没有方法体 需要在小括号后加上分号 抽象类和抽象方法 抽象方法 如果一个类的某些功能比较抽象或者无法在本类中具体实现 可以将这个类声明为抽象的 那么这些抽象或者无法具体实现的功能可以在子类中完成 抽象类的语法 修饰符 abstractclass类名 extends父类名 类体 抽象类和普通类除了使用abstract修饰外和普通的类相似抽象类中可以没有抽象方法但是一旦某个有抽象方法 那么这个类必须被声明为抽象类 抽象类 抽象类 因为抽象类不是一个具体的类 所以无法实例化 但是抽象类可以用于声明对象 抽象类 抽象类可以被继承 在子类中实现抽象类的所有抽象方法 以达到抽象类的具体化 抽象类 具体化后的子类方法就可以用来创建对象了 抽象类 在软件工程中 经常将一个大的项目分由不同的开发小组共同开发 各个小组的开发工作是并行的 在很多时候 对于不同小组的程序员来说 清楚地说明各自的软件如何相互作用 并就此达成统一 约定 是很重要的 这种情况下 每一小组都可以在对其他小组怎么编写代码一无所知的情况下 就能编写自己的代码 并且各自小组编写的代码能很好的协同工作 接口就是这样的 约定 接口 在Java中接口不仅仅是程序开发过程中 约定 更是更加抽象化的抽象类接口的定义 修饰符 interface接口名 常量 抽象方法 接口的定义 接口的实现定义类时通过implements关键字实现接口接口实现的语法 修饰符 class类名 extends父类名 implements接口1 接口2 类体部分 接口的实现 一个类可以实现多个接口 从而解决了Java单继承的缺点 接口的实现 在Java中类之间的继承关系是单继承 也就是说一个类有且只能有一个父类 而Java中的接口实现了多继承 也就是说一个接口可以有多个父接口 接口的继承 提高程序的重用性提高程序的可扩展性降低程序的耦合度实现了多继承 接口的作用 实现多继承 接口的作用 实现了多继承 接口的作用 降低程序耦合度 接口的作用 降低耦合度 接口的作用 什么是包包是Java用于提供访问保护和命名空间管理的方式简单的理解 包就是用来将Java中类和接口等进行分类管理的工具 类似于操作系统中的目录包的声明package包名 包名的前半部分一般使用倒置的域名 后半部分一般采用该包下类分类名 或者功能名 如 packagecom sina util 包的声明必须是整个类文件的第一行语句 包的使用 声明包 一旦需要使用另外一个包中的类时 需要将该类导入到当前类中 如需要在程序中使用java util包下的Scanner类 需要将给类先导入到使用的类中类导入的语法import包名 类名 或者import包名 包的导入 导入类 instanceof运算符的使用用于判断一个对象是不是某个类的实例 instanceof运算符 多态包的使用package关键字import关键字抽象类abstract关键字final关键字接口interface关键字implements关键字 本章总结 作业一设计一个台灯类Lamp其中台灯有灯泡这个属性 还有开灯 on 这个方法 设计一个灯泡类其中有红灯泡 RedBuble 和绿灯泡 GreenBuble 他们都有一个发亮的方法 请设计出一段代码可以使台灯开启灯泡发亮 并且保证替换不同种类的灯泡台灯类代码不被修改 作业二 设计一个继承关系其中存在动物类Animal 狗类Dog和猫类Cat 对于猫类和狗类都有一个吃eat方法 但是猫和狗的吃eat方法的实现不同 请合理的设计出AnimalDogCat这3个类关系 作业 作业三 设计一个形状类 接口 Shape 方法 求周长和求面积形状类 接口 的子类 实现类 Rect 矩形 Circle 圆形 Rect类的子类 Square 正方形 不同的子类会有不同的计算周长和面积的方法创建三个不同的形状对象 放在Shape类型的数组里 分别打印出每个对象的周长和面积 作业 作业四 某公司的雇员分为以下若干类 Employee 这是所有员工总的父类 属性 员工的姓名 员工的生日月份 方法 getSalary intmonth 根据参数月份来确定工资 如果该月员工过生日 则公司会额外奖励100元 SalariedEmployee Employee的子类 拿固定工资的员工 属性 月薪HourlyEmployee Employee的子类 按小时拿工资的员工 每月工作超出160小时的部分按照1 5倍工资发放 属性 每小时的工资 每月工作的小时数SalesEmployee Employee的子类 销售人员 工资由月销售额和提成率决定 属性 月销售额 提成率BasePlusSalesEmployee SalesEmployee的子类 有固定底薪的销售人员 工资由底薪加上销售提成部分 属性 底薪 写一个程序 把若干各种类型的员工放在一个Employee数组里 写一个方法 打印出某月每个员工的工资数额 注意 要求把每个类都做成完全封装 不允许非私有化属性 作业
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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