JAVA 应用开发详解 面向对象(高级) —— 实例分析:宠物商店 实例要求 实现一个宠物商店,在宠物商店中可以有多种(由用户决定数量)宠物,试表示出此种关系,并要求可以根据宠物的关键字查找到相应的宠物信息。所需要的宠物信息自行设计。 分析 1、本要求中提示宠物的信息可以自行设计,所以此时简单设计出三个属性:名字、颜色、年龄。 2、宠物的类别很多,例如:猫、狗等都属于宠物,所以宠物应该是一个标准。 3、在宠物商店中,只要是符合了此宠物标准的就都应该可以放进宠物商店之中。 4、宠物商店中要保存多种宠物,则肯定应该是一个宠物的对象数组,宠物的个数由用户决定的话,则应该在创建宠物商店的时候,就已经分配好宠物的个数。 类图 宠物接口 —— Pet.java 宠物猫 —— Cat.java 宠物狗 —— Dog.java 宠物商店 —— PetShop.java(增加宠物) 宠物商店 —— PetShop.java(查询) 测试宠物商店 —— PetShopDemo.java ? MLDN 软件教学研发部 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) ; } // setter、getter }; class Dog implements Pet { private String name;// 宠物名字 private String color;// 宠物颜色 private int age;// 宠物年龄 public Dog(String name, String color, int age) {// 通过构造设置属性 this.name = name; this.color = color; this.age = age; } // setter、getter }; class PetShop { private Pet[] pets;// 保存多个属性 private int foot;// 数据的保存位置 public PetShop(int len) {// 构造方法开辟宠物数组的大小 if(len>0){// 判断长度是否大于0 this.pets = new Pet[len];// 为对象数组开辟空间 }else{ this.pets = new Pet[len] ;// 至少开辟一个空间 } } public boolean add(Pet pet) {// 增加宠物 if (foot < this.pets.length) {// 判断宠物商店里的宠物是否已经满了 this.pets[foot] = pet;// 增加宠物 foot++;// 修改保存位置 return true;// 增加成功 } else { return false;// 增加失败 } } … }; class PetShop { … 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].get

java实例分析宠物商店_java实例分析:宠物商店.ppt相关推荐

  1. java查看链表指定元素_Java 实例 – 链表元素查找

    Java 实例 - 链表元素查找 以下实例演示了使用 linkedlistname.indexof(element) 和 linkedlistname.Lastindexof(elementname) ...

  2. java设置子线程优先级_Java 实例 - 线程优先级设置

    Java 实例 - 线程优先级设置 以下实例演示了如何通过setPriority() 方法来设置线程的优先级: SimplePriorities.java 文件 public class Simple ...

  3. java压栈重复字符串_Java 实例 – 压栈出栈的方法实现字符串反转

    Java 实例 - 压栈出栈的方法实现字符串反转 以下实例演示了使用用户自定义的方法 StringReverserThroughStack() 来实现字符串反转: /* author by w3csc ...

  4. java数组查找指定元素_Java 实例 - 在数组中查找指定元素

    以下实例演示了如何使用 contains () 方法来查找数组中的指定元素:/* author by w3cschool.cc 文件名:Main.java */import java.util.Arr ...

  5. java换行符分隔字符串_Java 实例 – 字符串分隔(StringTokenizer) | 菜鸟教程

    StringTokenizer和split方法还有一个很重要的区别就是:前者会以给定分割字符串的每个字符进行分割,而后者是以整个字符串进行切割.借鉴上面的代码: import java.util.St ...

  6. java 全双工服务器_利用Java实现串口全双工通讯_JAVA实例教程_IT部落

    本文介绍了一个简单的通过串口实现全双工通讯的Java类库,该类库大大的简化了对串口进行操作的过程 一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线控制系统需要不断的接受从主控系 ...

  7. java计算器制作教学视频_java实例——简单计算器的制做

    本文章由xin3721视频教程网发布,转载请注明出处. 这是一个不错的计算器经过测试无误,现将代码公布供大家参考学习. import java.awt.*; import java.awt.event ...

  8. java dump分析工具_java性能分析与常用工具

    本次源码已放在Github:https://github.com/nateshao/jvm-tuning 个人博客 https://nateshao.gitee.io http://www.nates ...

  9. java实例变量成员变量_Java的类成员变量、实例变量、类变量,成员方法、实例方法、类方法...

    总是被这些相似的概念搞晕,查阅了资料后做个小总结,以变量为例,方法辨析类似. 1.多胞胎名字汇总辨析 成员变量和成员方法是范围最大的定义,提到成员变量就可以理解成你所定义在一个类体中的各类变量的统称, ...

最新文章

  1. 网站推广专员浅析网站推广运营如何提升企业网站转化率?
  2. easycode自定义模板转载
  3. 洛谷——P1910 L国的战斗之间谍
  4. sql 注射_令人惊讶的注射
  5. 持续集成部署Jenkins工作笔记0021---21.关闭防止跨站点请求伪造
  6. How Tomcat Works(十三)
  7. 我的代码被CTO说:写的代码像坨...
  8. iframe页面相互调用方法
  9. Learning Efficient Single-stage Pedestrian Detectors by Asymptotic Localization Fitting行人检测ECCV2018
  10. 服务器协议密码,Radius协议 - 如何将密码发送到服务器?
  11. ios 程序中安装 描述文件
  12. u盘损坏怎么恢复原来数据,u盘损坏数据如何恢复
  13. 失传万年的PS致富经典(六)
  14. Java小游戏练习---超级玛丽代码实现
  15. 北师大19秋计算机在线1,北师19秋《专科英语(二)》在线作业1【满分答案】
  16. 【Solr】之倒排索引算法【字典树】2
  17. 面向初学者的 MQL4 语言系列之4——自定义指标
  18. 麒麟Kylin系统适配gStore图数据库系统
  19. MYSQL字符串聚合函数
  20. Android 超简单音乐播放器(九)搜索网络歌曲,获得热门榜单(GridView)(易源api的使用)(JSON的解析)(刷新)

热门文章

  1. SPSS数据分析之列联分析与卡方检验、方差分析与LSD方法【操作详解】
  2. ehcache缓存原理_干掉GuavaCache:Caffeine才是本地缓存的王
  3. usb 系统消息_别让 USB 传输速度影响 Android 开发效率
  4. python如何初始化对象数组_如何理解Python中的面向对象编程?
  5. catia func 三菱后处理_20款三菱帕杰罗V97奢华SUV 津港促销价_搜狐汽车
  6. Python+tkinter模拟京东旋转图片式验证码输入
  7. Python+matplotlib设置y轴标签距离、位置、竖排
  8. 详解Python中的各种数字类型
  9. Linux系统升级维护费,Antergos Linux 宣布停止维护
  10. 簇的局部变量中布尔类型_GO语言入门(go的基本类型)