版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上季内容回顾:代理设计、适配器设计抽象类和接口的区别本季主要知识点:本季以题目讲解为主,详细的讲解了抽象类和接口的实际应用及典型的实例分析。练习题一abstractclassEmployeeprivateStringname;privateint age;privateStringsex;publicEmployee()publicEmployee(Stringname, int age,Stringsex)this .setName(name);this .setAge(age);this .setSex(sex);publicvoidsetName(Stringname)this .nam
2、e=name;publicvoidsetAge(intage)this .age=age;publicvoidsetSex(Stringsex)this .sex=sex;publicStringgetName()returnthis .name;publicintgetAge()returnthis .age;publicStringgetSex()returnthis .sex;/ 显示数据publicabstractStringgetInfo();classManagerextendsEmployee/ 职务privateStringjob;/ 年薪privatefloatincome;
3、publicManager()publicManager(Stringname,intage,Stringsex,Stringjob, floatincome)super(name,age,sex);this .setJob(job);this .setIncome(income);publicvoidsetJob(Stringjob)this .job=job;publicvoidsetIncome(floatincome)this .income=income;publicStringgetJob()returnthis .job;publicfloatgetIncome()returnt
4、his .income;publicStringgetInfo()return" 管理层信息: " + "n"+"t|-姓名: " + super .getName()+"n"+"t|-年龄: " + super .getAge()+"n"+"t|-性别: " + super .getSex()+"n"+"t|-职务: " + this .getJob()+ "n"+"t|-年薪: &q
5、uot; + this .getIncome();classWorkerextendsEmployeeprivateStringdept;privatefloatsalary;publicWorker()publicWorker(Stringname,intage,Stringsex,Stringdept,floatsalary)super(name,age,sex);this .setDept(dept);this .setSalary(salary);publicvoidsetDept(Stringdept)this .dept=dept;publicvoidsetSalary(float
6、salary)this .salary=salary;publicStringgetDept()returnthis .dept;publicfloatgetSalary()returnthis .salary;publicStringgetInfo()return" 职员信息:" + "n"+"t|-姓名:" + super.getName()+"n"+"t|-"t|-"t|-"t|-年龄:性别:部门:月薪:" + super .getAge()+ "
7、+ super .getSex()+ " + this .getDept()+ " + this .getSalary();"n""n""n"publicclassDemo01publicstaticvoidmain(Stringargs)Employee w = new Employee m = newWorker( Manager(" 张三 " ,30, "男" ," 技术部" 李四 " ,35, "女" ,"
8、经理" ,5000.0f);" ,10000.0f);练习题二 (重点来咯 )分析:只要是宠物则肯定可以向宠物商店中加入猫->宠物狗 -> 宠物宠物商店存放宠物五种宠物?如果说不是五种,可能是更多种了,那该如何?5 种宠物 -> 5个接口对象->对象数组/ 宠物interfacePet/ 宠物商店classPetShop/ 小狗classDogimplementsPet/ 小猫classCatimplementsPet宠物信息:· 名字· 年龄· 颜色· 价钱还应该具备一个返回全部信息的方法。我们继续看下面哈/
9、 宠物interfacePet/ 返回宠物的名字publicStringgetName();/ 返回宠物的年龄publicintgetAge();/ 返回宠物的颜色publicStringgetColor();/ 返回宠物的价钱publicfloatgetPrice();/ 返回宠物的全套信息publicStringgetInfo();/ 宠物商店classPetShop/ 必须有一个对象数组可以保存全部的宠物privatePetp=null ;/ 必须定义一个当前已经加到了多少个宠物privateintfoot=0;/ 对象数组的大小,可以由程序运行时动态分配/len表示对象数组的长度pub
10、licPetShop(intlen)/ 动态得开辟了对象数组空间this .p=newPetlen;/ 增加宠物/ 假设说宠物商店里面的宠物已经够多了,那还可以继续增加吗?publicbooleanadd(Petp)if( this .foot<this .p.length)/ 还有地方加入宠物this .pfoot=p;/ 宠物数量增加this .foot+;returntrue ;elsereturnfalse ;/ 查找宠物信息的方法publicPetsearch(StringkeyWord)/ 要返回的对象数组Petpet=null ;/ 最后要根据count的内容开辟对象数组i
11、ntcount=0;/pet的大小是否确定呢?pet,把此数组返回/ 先求出符合关键字的全部宠物信息/ 循环验证for( inti=0;i<this .p.length;i+)/ 判断返回的信息是否有指定的关键字存在if( this .pi.getInfo().indexOf(keyWord)!=-1)/ 如果不等于 -1 ,表示已经找到了/ 就表示可以增加一个记录count+;/ 经过以上代码之后,肯定 count 包含了全部已经满足要求的宠物信息个数 if (count!=0)/ 已经有内容petcount=new=0;Petcount;/ 还需要重新循环一次for( inti=0;
12、i<this .p.length;i+)/ 判断返回的信息是否有指定的关键字存在if ( this .pi.getInfo().indexOf(keyWord)!=-1)/ 如果不等于 -1 ,表示已经查找到了/ 表示向返回的对象数组中加入内容petcount=this .pi;/ 表示全部符合要求的对象数组returnpet;else/ 表示没有查询到内容returnnull ;/ 小狗classDogimplementsPetprivateStringname;privateintage;privateStringcolor;privatefloatprice;/ 加入两个构造方法p
13、ublicDog()publicDog(Stringname,intage,Stringcolor,floatprice)this .setName(name);this .setAge(age);this .setColor(color);this .setPrice(price);publicvoidsetName(Stringname)this .name=name;publicvoidsetAge(intage)this .age=age;publicvoidsetColor(Stringcolor)this .color=color;publicvoidsetPrice(floatp
14、rice)this .price=price;publicStringgetName()returnthis .name;publicintgetAge()returnthis .age;publicStringgetColor()returnthis .color;publicfloatgetPrice()returnthis .price;publicStringgetInfo()return" 狗的信息:" + "n"+"t|-"t|-"t|-"t|-狗的名字:狗的颜色:狗的年龄:狗的价格:" +
15、this .name+ " + this .color+ " + this .age+ " + this .price+"n""n""n""n"/ 小猫classCatimplementsPetprivateStringname;privateintage;privateStringcolor;privatefloatprice;/ 加入两个构造方法publicCat()publicCat(Stringname,intage,Stringcolor,floatprice)this .s
16、etName(name);this .setAge(age);this .setColor(color);this .setPrice(price);publicvoidsetName(Stringname)this .name=name;publicvoidsetAge(intage)this .age=age;publicvoidsetColor(Stringcolor)this .color=color;publicvoidsetPrice(floatprice)this .price=price;publicStringgetName()returnthis .name;publici
17、ntgetAge()returnthis .age;publicStringgetColor()returnthis .color;publicfloatgetPrice()returnthis .price;publicStringgetInfo()return" 猫的信息: " + "n"+"t|-猫的名字:" + this .name+"n"+"t|-猫的颜色:" + this .color+"n"+"t|-猫的年龄:" + this .age+&q
18、uot;n"+"t|-猫的价格:" + this .price+"n" ;/ 编写主方法进行测试publicclassDemo02publicstaticvoidmain(Stringargs)/ 指定里面存放宠物的个数PetShopshop=newPetShop(5);/ 向商店中增加宠物newDog( " 拉布拉多 " ,3, " 黄色 " ,5000.0f)?"添加宠物成功!" : " 添加宠物失败!" );newCat( " 黑猫 ",2
19、, " 黑色 " ,500.0f)?" 添加宠物成功! " : " 添加宠物失败!" );newDog( " 美卡 " ,1, " 金色 " ,2000.0f)?" 添加宠物成功! " : " 添加宠物失败!" );newCat( " 波斯猫 " ,2, " 白色 " ,2800.0f)?" 添加宠物成功!" : " 添加宠物失败!" );newDog( " 哈巴狗
20、" ,3, " 棕色 " ,120.0f)?" 添加宠物成功! " : " 添加宠物失败!" );/ 这个是第六个宠物,已经放不下了,所以就不放了newDog( " 人造狗 " ,1, " 杂色 " ,10.0f)?" 添加宠物成功! " : " 添加宠物失败!" );/ 增加成功之后进行查询/ 返回的应该是一个对象数组(即接口数组)Petforp( int= shop.search( i=0;i<p.length"狗"
21、); ;i+)出现空指向错误哈主要原因在于count 的值没有改变,则其他的元素都是null ,我们加入count+ 就可以了哈 / 宠物interfacePet/ 返回宠物的名字publicStringgetName();/ 返回宠物的年龄publicintgetAge();/ 返回宠物的颜色publicStringgetColor();/ 返回宠物的价钱publicfloatgetPrice();/ 返回宠物的全套信息publicStringgetInfo();/ 宠物商店classPetShop/ 必须有一个对象数组可以保存全部的宠物privatePetp=null ;/ 必须定义一个当
22、前已经加到了多少个宠物privateintfoot=0;/ 对象数组的大小,可以由程序运行时动态分配/len表示对象数组的长度publicPetShop(intlen)/ 动态得开辟了对象数组空间this .p=newPetlen;/ 增加宠物/ 假设说宠物商店里面的宠物已经够多了,那还可以继续增加吗?publicbooleanadd(Petp)if( this .foot<this .p.length)/ 还有地方加入宠物this .pfoot=p;/ 宠物数量增加this .foot+;returntrue ;elsereturnfalse ;/ 查找宠物信息的方法publicPet
23、search(StringkeyWord)/ 要返回的对象数组Petpet=null ;/ 最后要根据count的内容开辟对象数组intcount=0;/pet的大小是否确定呢?pet,把此数组返回/ 先求出符合关键字的全部宠物信息/ 循环验证for( inti=0;i<this .p.length;i+)/ 判断返回的信息是否有指定的关键字存在if( this .pi.getInfo().indexOf(keyWord)!=-1)/ 如果不等于 -1 ,表示已经找到了/ 就表示可以增加一个记录count+;/ 经过以上代码之后,肯定 count 包含了全部已经满足要求的宠物信息个数 i
24、f (count!=0)/ 已经有内容petcount=new=0;Petcount;/ 还需要重新循环一次for( inti=0;i<this .p.length;i+)/ 判断返回的信息是否有指定的关键字存在if ( this .pi.getInfo().indexOf(keyWord)!=-1)/ 如果不等于 -1 ,表示已经查找到了/ 表示向返回的对象数组中加入内容petcount=this .pi;/count的值没有改变,则其他的元素都是nullcount+;/ 表示全部符合要求的对象数组returnpet;else/ 表示没有查询到内容returnnull ;/ 小狗cla
25、ssDogimplementsPetprivateStringname;privateintage;privateStringcolor;privatefloatprice;/ 加入两个构造方法publicDog()publicDog(Stringname,intage,Stringcolor,floatprice)this .setName(name);this .setAge(age);this .setColor(color);this .setPrice(price);publicvoidsetName(Stringname)this .name=name;publicvoidsetA
26、ge(intage)this .age=age;publicvoidsetColor(Stringcolor)this .color=color;publicvoidsetPrice(floatprice)this .price=price;publicStringgetName()returnthis .name;publicintgetAge()returnthis .age;publicStringgetColor()returnthis .color;publicfloatgetPrice()returnthis .price;publicStringgetInfo()return&q
27、uot; 狗的信息:" + "n"+"t|-"t|-"t|-"t|-狗的名字:狗的颜色:狗的年龄:狗的价格:" + this .name+ " + this .color+ " + this .age+ " + this .price+"n""n""n""n"/ 小猫classCatimplementsPetprivateStringname;privateintage;privateStringcolor
28、;privatefloatprice;/ 加入两个构造方法publicCat()publicCat(Stringname,intage,Stringcolor,floatprice)this .setName(name);this .setAge(age);this .setColor(color);this .setPrice(price);publicvoidsetName(Stringname)this .name=name;publicvoidsetAge(intage)this .age=age;publicvoidsetColor(Stringcolor)this .color=c
29、olor;publicvoidsetPrice(floatprice)this .price=price;publicStringgetName()returnthis .name;publicintgetAge()returnthis .age;publicStringgetColor()returnthis .color;publicfloatgetPrice()returnthis .price;publicStringgetInfo()return" 猫的信息: " + "n"+"t|-猫的名字:" + this .name+
30、"n"+"t|-猫的颜色:" + this .color+"n"+"t|-猫的年龄:" + this .age+"n"+"t|-猫的价格:" + this .price+"n" ;/ 编写主方法进行测试publicclassDemo02publicstaticvoidmain(Stringargs)/ 指定里面存放宠物的个数PetShopshop=newPetShop(5);/ 向商店中增加宠物newDog( " 拉布拉多 " ,3,
31、" 黄色 " ,5000.0f)?"添加宠物成功!" : " 添加宠物失败!" );newCat( " 黑猫 ",2, " 黑色 " ,500.0f)?" 添加宠物成功! " : " 添加宠物失败!" );newDog( " 美卡 " ,1, " 金色 " ,2000.0f)?" 添加宠物成功! " : " 添加宠物失败!" );newCat( " 波斯猫 "
32、; ,2, " 白色 " ,2800.0f)?" 添加宠物成功!" : " 添加宠物失败!" );newDog( " 哈巴狗 " ,3, " 棕色 " ,120.0f)?" 添加宠物成功! " : " 添加宠物失败!" );/ 这个是第六个宠物,已经放不下了,所以就不放了newDog( " 人造狗 " ,1, " 杂色 " ,10.0f)?" 添加宠物成功! " : " 添加宠物失败!&
33、quot; );/ 增加成功之后进行查询/ 返回的应该是一个对象数组(即接口数组)Petforp( int= shop.search( i=0;i<p.length"狗"); ;i+)现在我们就查出了带狗的信息哈如果我们要查找带卡的宠物呢?/ 宠物interfacePet/ 返回宠物的名字publicStringgetName();/ 返回宠物的年龄publicintgetAge();/ 返回宠物的颜色publicStringgetColor();/ 返回宠物的价钱publicfloatgetPrice();/ 返回宠物的全套信息publicStringgetInfo
34、();/ 宠物商店classPetShop/ 必须有一个对象数组可以保存全部的宠物privatePetp=null ;/ 必须定义一个当前已经加到了多少个宠物privateintfoot=0;/ 对象数组的大小,可以由程序运行时动态分配/len表示对象数组的长度publicPetShop(intlen)/ 动态得开辟了对象数组空间this .p=newPetlen;/ 增加宠物/ 假设说宠物商店里面的宠物已经够多了,那还可以继续增加吗?publicbooleanadd(Petp)if( this .foot<this .p.length)/ 还有地方加入宠物this .pfoot=p;/
35、 宠物数量增加this .foot+;returntrue ;elsereturnfalse ;/ 查找宠物信息的方法publicPetsearch(StringkeyWord)/ 要返回的对象数组Petpet=null ;/ 最后要根据count的内容开辟对象数组pet,把此数组返回intcount=0;/pet的大小是否确定呢?/ 先求出符合关键字的全部宠物信息/ 循环验证for( inti=0;i<this .p.length;i+)/ 判断返回的信息是否有指定的关键字存在if( this .pi.getInfo().indexOf(keyWord)!=-1)/ 如果不等于 -1
36、,表示已经找到了/ 就表示可以增加一个记录count+;/ 经过以上代码之后,肯定 count 包含了全部已经满足要求的宠物信息个数 if (count!=0)/ 已经有内容petcount=new=0;Petcount;/ 还需要重新循环一次for( inti=0;i<this .p.length;i+)/ 判断返回的信息是否有指定的关键字存在if ( this .pi.getInfo().indexOf(keyWord)!=-1)/ 如果不等于 -1 ,表示已经查找到了/ 表示向返回的对象数组中加入内容petcount=this .pi;/count的值没有改变,则其他的元素都是nu
37、llcount+;/ 表示全部符合要求的对象数组returnpet;else/ 表示没有查询到内容returnnull ;/ 小狗classDogimplementsPetprivateStringname;privateintage;privateStringcolor;privatefloatprice;/ 加入两个构造方法publicDog()publicDog(Stringname,intage,Stringcolor,floatprice)this .setName(name);this .setAge(age);this .setColor(color);this .setPric
38、e(price);publicvoidsetName(Stringname)this .name=name;publicvoidsetAge(intage)this .age=age;publicvoidsetColor(Stringcolor)this .color=color;publicvoidsetPrice(floatprice)this .price=price;publicStringgetName()returnthis .name;publicintgetAge()returnthis .age;publicStringgetColor()returnthis .color;
39、publicfloatgetPrice()returnthis .price;publicStringgetInfo()return" 狗的信息:" + "n"+"t|-"t|-"t|-"t|-狗的名字:狗的颜色:狗的年龄:狗的价格:" + this .name+ " + this .color+ " + this .age+ " + this .price+"n""n""n""n"/ 小猫cla
40、ssCatimplementsPetprivateStringname;privateintage;privateStringcolor;privatefloatprice;/ 加入两个构造方法publicCat()publicCat(Stringname,intage,Stringcolor,floatprice)this .setName(name);this .setAge(age);this .setColor(color);this .setPrice(price);publicvoidsetName(Stringname)this .name=name;publicvoidsetAge(intage)this .age=age;publicvoidsetColor(Stringcolor)this .color=color;publicvoid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道路交通事故应急演练方案及总结
- 见习生管理制度、高校毕业生就业见习管理办法
- 学校疫情防控及传染病防控应急演练方案
- 2025手术室标本管理制度培训考核试卷试题及答案
- 飞碟来袭课件
- 2026年不动产租赁经营合同二篇
- 2025年交通工程专业技能测验试题及真题
- 2026年化学实验安全知识普及试题
- 全国范围内青少年心理健康教育与辅导考试及答案
- 高中化学工业制法内容考察试题及真题
- 一人公司(OPC)发展研究报告
- 2025SISA共识文件:血浆甘油三酯在心血管疾病中的作用课件
- 2025-2026学年江苏省苏州市八校高三(上)联考英语试卷(12月份)
- GB/T 21402-2025农业灌溉设备灌溉首部
- 2024年黑龙江辅警协警招聘考试真题及答案详解(历年真题)
- 住培督导经验交流课件
- (ACS及Process)自动镀膜控制装置使用说明书
- 北湖公园水生态施工方案
- 急救培训自查、整改与提升措施
- 免还款协议5篇
- 2024年江苏省无锡市中考数学试卷(副卷)
评论
0/150
提交评论