零基础学JAVAJava SE面向对象部分19面向对象高级07.docx
- 文档编号:4651087
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:21
- 大小:232.15KB
零基础学JAVAJava SE面向对象部分19面向对象高级07.docx
《零基础学JAVAJava SE面向对象部分19面向对象高级07.docx》由会员分享,可在线阅读,更多相关《零基础学JAVAJava SE面向对象部分19面向对象高级07.docx(21页珍藏版)》请在冰豆网上搜索。
零基础学JAVAJavaSE面向对象部分19面向对象高级07
上季内容回顾:
代理设计、适配器设计
抽象类和接口的区别
本季主要知识点:
本季以题目讲解为主,详细的讲解了抽象类和接口的实际应用及典型的实例分析。
练习题一
abstractclassEmployee
{
privateStringname;
privateintage;
privateStringsex;
publicEmployee(){}
publicEmployee(Stringname,intage,Stringsex)
{
this.setName(name);
this.setAge(age);
this.setSex(sex);
}
publicvoidsetName(Stringname)
{
this.name=name;
}
publicvoidsetAge(intage)
{
this.age=age;
}
publicvoidsetSex(Stringsex)
{
this.sex=sex;
}
publicStringgetName()
{
returnthis.name;
}
publicintgetAge()
{
returnthis.age;
}
publicStringgetSex()
{
returnthis.sex;
}
//显示数据
publicabstractStringgetInfo();
}
classManagerextendsEmployee
{
//职务
privateStringjob;
//年薪
privatefloatincome;
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()
{
returnthis.income;
}
publicStringgetInfo()
{
return"管理层信息:
"+"\n"
+"\t|-姓名:
"+super.getName()+"\n"
+"\t|-年龄:
"+super.getAge()+"\n"
+"\t|-性别:
"+super.getSex()+"\n"
+"\t|-职务:
"+this.getJob()+"\n"
+"\t|-年薪:
"+this.getIncome();
}
}
classWorkerextendsEmployee
{
privateStringdept;
privatefloatsalary;
publicWorker(){}
publicWorker(Stringname,intage,Stringsex,Stringdept,floatsalary)
{
super(name,age,sex);
this.setDept(dept);
this.setSalary(salary);
}
publicvoidsetDept(Stringdept)
{
this.dept=dept;
}
publicvoidsetSalary(floatsalary)
{
this.salary=salary;
}
publicStringgetDept()
{
returnthis.dept;
}
publicfloatgetSalary()
{
returnthis.salary;
}
publicStringgetInfo()
{
return"职员信息:
"+"\n"
+"\t|-姓名:
"+super.getName()+"\n"
+"\t|-年龄:
"+super.getAge()+"\n"
+"\t|-性别:
"+super.getSex()+"\n"
+"\t|-部门:
"+this.getDept()+"\n"
+"\t|-月薪:
"+this.getSalary();
}
}
publicclassDemo01
{
publicstaticvoidmain(Stringargs[])
{
Employeew=newWorker("张三",30,"男","技术部",5000.0f);
Employeem=newManager("李四",35,"女","经理",10000.0f);
System.out.println(w.getInfo());
System.out.println(m.getInfo());
}
}
练习题二(重点来咯~~~)
分析:
只要是宠物则肯定可以向宠物商店中加入
猫 -->宠物
狗 -->宠物
宠物商店存放宠物
五种宠物?
如果说不是五种,可能是更多种了,那该如何?
5种宠物-->5个接口对象-->对象数组
//宠物
interfacePet
{
}
//宠物商店
classPetShop
{
}
//小狗
classDogimplementsPet
{
}
//小猫
classCatimplementsPet
{
}
宠物信息:
·名字
·年龄
·颜色
·价钱
还应该具备一个返回全部信息的方法。
我们继续看下面哈~
//宠物
interfacePet
{
//返回宠物的名字
publicStringgetName();
//返回宠物的年龄
publicintgetAge();
//返回宠物的颜色
publicStringgetColor();
//返回宠物的价钱
publicfloatgetPrice();
//返回宠物的全套信息
publicStringgetInfo();
}
//宠物商店
classPetShop
{
//必须有一个对象数组可以保存全部的宠物
privatePetp[]=null;
//必须定义一个当前已经加到了多少个宠物
privateintfoot=0;
//对象数组的大小,可以由程序运行时动态分配
//len表示对象数组的长度
publicPetShop(intlen)
{
//动态得开辟了对象数组空间
this.p=newPet[len];
}
//增加宠物
//假设说宠物商店里面的宠物已经够多了,那还可以继续增加吗?
publicbooleanadd(Petp)
{
if(this.foot { //还有地方加入宠物 this.p[foot]=p; //宠物数量增加 this.foot++; returntrue; } else { returnfalse; } } //查找宠物信息的方法 publicPet[]search(StringkeyWord) { //要返回的对象数组 Petpet[]=null; //最后要根据count的内容开辟对象数组pet,把此数组返回 intcount=0; //pet的大小是否确定呢? //先求出符合关键字的全部宠物信息 //循环验证 for(inti=0;i { //判断返回的信息是否有指定的关键字存在 if(this.p[i].getInfo().indexOf(keyWord)! =-1) { //如果不等于-1,表示已经找到了 //就表示可以增加一个记录 count++; } } //经过以上代码之后,肯定count包含了全部已经满足要求的宠物信息个数 if(count! =0) { //已经有内容 pet=newPet[count]; count=0; //还需要重新循环一次 for(inti=0;i { //判断返回的信息是否有指定的关键字存在 if(this.p[i].getInfo().indexOf(keyWord)! =-1) { //如果不等于-1,表示已经查找到了 //表示向返回的对象数组中加入内容 pet[count]=this.p[i]; } } //表示全部符合要求的对象数组 returnpet; } else { //表示没有查询到内容 returnnull; } } } //小狗 classDogimplementsPet { privateStringname; 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; } publicvoidsetAge(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"狗的信息: "+"\n" +"\t|-狗的名字: "+this.name+"\n" +"\t|-狗的颜色: "+this.color+"\n" +"\t|-狗的年龄: "+this.age+"\n" +"\t|-狗的价格: "+this.price+"\n"; } } //小猫 classCatimplementsPet { privateStringname; privateintage; privateStringcolor; privatefloatprice; //加入两个构造方法 publicCat(){} publicCat(Stringname,intage,Stringcolor,floatprice) { this.setName(name); this.setAge(age);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 零基础学JAVAJava SE面向对象部分19面向对象高级07 基础 JAVAJava SE 面向 对象 部分 19 高级 07