Java-面向对象实例--宠物商店
面向对象实例分析—宠物商店
设计一个宠物商店,在商店中可以有多种宠物,试表示出此种关系,并要求可以根据关键字查找相应的宠物信息。所需要的宠物信息自行设定。
(1).简单设计出名字、颜色、年龄属性;
(2).宠物种类多,所以宠物应该是一个标准;
(3).在在宠物店中,只要是符合宠物标准的都应该可以放进宠物店中
(4).宠物店中存在多种宠物,则肯定是宠物的对象数组,臭无个数有用户来决定。
宠物接口:
interface Pet{ // 定义宠物接口public String getName() ;public String getColor() ;public int getAge() ;
}
宠物猫:
class Cat implements Pet{ // 猫是宠物,实现接口private String name ; // 宠物名字private String color ; // 宠物颜色private int age ; // 宠物年龄public Cat(String name,String color,int age){this.setName(name) ;this.setColor(color) ;this.setAge(age) ;}public void setName(String name){this.name = name ;}public void setColor(String color){this.color = color;}public void setAge(int age){this.age = age ;}public String getName(){return this.name ;}public String getColor(){return this.color ;}public int getAge(){return this.age ;}
};
宠物狗:
class Dog implements Pet{ // 狗是宠物,实现接口private String name ; // 宠物名字private String color ; // 宠物颜色private int age ; // 宠物年龄public Dog(String name,String color,int age){this.setName(name) ;this.setColor(color) ;this.setAge(age) ;}public void setName(String name){this.name = name ;}public void setColor(String color){this.color = color;}public void setAge(int age){this.age = age ;}public String getName(){return this.name ;}public String getColor(){return this.color ;}public int getAge(){return this.age ;}
};
上面给出了两种动物,其他动物可以实现pet接口即可。
宠物商店:
class PetShop{ // 宠物商店private Pet[] pets ; // 保存一组宠物private int foot ;public PetShop(int len){if(len>0){this.pets = new Pet[len] ; // 开辟数组大小}else{this.pets = new Pet[1] ; // 至少开辟一个空间}}public boolean add(Pet pet){ // 增加的是一个宠物if(this.foot<this.pets.length){this.pets[this.foot] = pet ; // 增加宠物this.foot ++ ;return true ;}else{return false ;}}public Pet[] search(String keyWord){// 应该确定有多少个宠物符合要求Pet p[] = null ;int count = 0 ; // 记录下会有多少个宠物符合查询结果for(int i=0;i<this.pets.length;i++){if(this.pets[i]!=null){ // 表示此位置有宠物if(this.pets[i].getName().indexOf(keyWord)!=-1||this.pets[i].getColor().indexOf(keyWord)!=-1){count++ ; // 修改查找到的记录数}}}p = new Pet[count] ; // 开辟指定的大小空间int f = 0 ; // 增加元素的位置标记for(int i=0;i<this.pets.length;i++){if(this.pets[i]!=null){ // 表示此位置有宠物if(this.pets[i].getName().indexOf(keyWord)!=-1||this.pets[i].getColor().indexOf(keyWord)!=-1){p[f] = this.pets[i] ;f++ ;}}}return p ;}
};
测试宠物商店:
public class PetShopDemo{public static void main(String args[]){PetShop ps = new PetShop(5) ; // 五个宠物ps.add(new Cat("白猫","白色的",2)) ; // 增加宠物,成功ps.add(new Cat("黑猫","黑色的",3)) ; // 增加宠物,成功ps.add(new Cat("花猫","花色的",3)) ; // 增加宠物,成功ps.add(new Dog("拉步拉多","黄色的",3)) ; // 增加宠物,成功ps.add(new Dog("金毛","金色的",2)) ; // 增加宠物,成功ps.add(new Dog("黄狗","黑色的",2)) ; // 增加宠物,失败print(ps.search("黑")) ;}public static void print(Pet p[]){for(int i=0;i<p.length;i++){if(p[i]!=null){System.out.println(p[i].getName() + "," + p[i].getColor()+"," + p[i].getAge()) ;}}}
};
运行结果为:
黑猫,黑色的,3
以上程序只能存放5中宠物,所以添加第六种时无法添加。
Java-面向对象实例--宠物商店相关推荐
- Eclipse+Java+Swing实现宠物商店管理系统
Java+Swing实现宠物商店 一.系统介绍 二.系统展示 1.主界面 2.增加宠物 3.删除宠物 4.修改宠物 5.查询宠物 6.模块查询 三.系统实现 Cat.java Dog.java Mou ...
- [附源码]java毕业设计网上宠物商店
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- Java小程序——宠物商店
一.问题描述 设计一个宠物商店,在商店中可以有多种宠物,试表示出此种关系,并要求可以根据关键字查找相应的宠物信息.所需要的宠物信息自行设定. 1.可以保存多个宠物的信息 2.宠物的属性:名字.年龄等 ...
- 【计算机毕业设计】java ssm网上宠物商店系统
毕设帮助.开题指导.源码交流,联系方式见文末哦. 一.研究现状 近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域.于是电子商务开始流行起来,越来越 ...
- Java 链表(宠物商店)
范例:宠物商店 //宠物接口类 interface Pet {public abstract String getName();// 获取名字抽象方法public abstract int getAg ...
- Java面向对象实例(双色球摇号篇)
要求 1.随机生成几组双色球号码 2.前五个为红号,后一个为蓝号,用"|"隔开 3.用面向对象实现 定义一个类命名为Ball,其中两个属性:a.球的数字 b.球是否已经出现过. 方 ...
- Java项目:在线宠物商店系统(java+SSM+mysql+maven+tomcat)
源码获取:博客首页 "资源" 里下载! 一.项目简述 功能:本系统分用户前台和管理员后台. 系统包括用户的注册登录,狗狗的展示购物车添加以及下 单支付购买,后台有管理员用户,可以操 ...
- java实例分析宠物商店_java实例分析:宠物商店.ppt
JAVA 应用开发详解 面向对象(高级) -- 实例分析:宠物商店 实例要求 实现一个宠物商店,在宠物商店中可以有多种(由用户决定数量)宠物,试表示出此种关系,并要求可以根据宠物的关键字查找到相应的宠 ...
- 通过宠物商店理解java面向对象
前言:本篇博客,适合刚刚学完java基础语法的但是,对于面向对象,理解不够深刻的读者,本文通过经典的宠物商店,来让读者深刻的理解,面向对象,IS-A,HAS-A法则.本文不仅仅是简单的用java来模拟 ...
最新文章
- 清明出游,你会“鸽”酒店吗?AI 早已看穿一切
- 开源项目之树莓派---无线监控摄像头
- java的输出流包括_【转】输入/输出流 - 深入理解Java中的流 (Stream)
- HtmlParser中的各种Filter(1)
- JavaScript函数与Window对象
- 9个典型的开发者关系面试题
- java图像在背景图移动_java – 在Swing中移动背景图像
- 加密用户向阿桑奇捐赠超40万美元的BTC用于法律辩护
- 打印收款单据(easypoi)Vue+springBoot+Mybatisplus
- 离散分布的分布函数_数据分析|概率分布
- Python爬虫-爬取豆瓣TOP250
- c语言循环语句学习心得
- springboot定期清理文件
- 静态HTML页面的参数的获取
- FS平台数据库设计规范说明书v1.00
- 北航计算机学院学硕分数,考研|北航各学院复试分数线陆续公布,原来这个专业分数最高!...
- 冯英健:大网络营销与融合化网络营销
- 变量与指针变量的区别
- Axure从一个页面向另一个页面传值
- Stata教程(6)---帮助功能
热门文章
- ios 长按出现放大镜问题
- 一个关于投资的顿悟,恍然大悟那种顿悟!
- 公司喜欢和珍惜的6种员工
- ALOS 山东省12.5米DEM
- 拓嘉辰丰:拼多多制作主图怎么弄
- s4800扫描电镜的CSS3_S-4800-扫描电子显微镜
- word2019计算机考试题及答案,2019年全国计算机等级考试一级上机Word练习题汇总...
- 单场淘汰制场次计算方法_单淘汰赛什么意思?
- .net学习笔记——学生信息管理系统(二、windows窗体实现登录界面)
- 引领趋势拥抱未来!修嗒嗒云脸惊艳亮相上海建博会,大放异彩!