宠物商店

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 ;
	}
};
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()) ;
			}
		}
	}
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 泛型

    葆宁
  • Java多重继承简单示例

    葆宁
  • 李兴华Java核心技术讲解--类集框架笔记

    3.1、认识类集(理解) 如果现在要想保存多个对象,肯定使用对象数组完成,但是对象数组本身有一个最大的问题在于其数据的长度,所以后来使用了链表完成了动态对象数...

    葆宁
  • 泛型

    葆宁
  • IDEA 插件开发实战

    IntelliJ IDEA 是一款开发工具,提供很多插件功能,比如阿里规范插件(Alibaba Java Coding Guidelines),但是随着日常业务...

    CSDN技术头条
  • Java之面向对象例子(二)

    定义一个Book类,在定义一个JavaBook类继承他 //book类 package com.hanqi.maya.model; public class B...

    二十三年蝉
  • Java 单向链表学习

    链表等同于动态的数组;可以不同设定固定的空间,根据需要的内容动态的改变链表的占用空间和动态的数组同一形式;链表的使用可以更加便于操作。

    Mirror王宇阳
  • 三种项目模式下 后端将Javabean数据 转为json数据

    前提说明为了演示的一致性,将返回数据进行的统一,编写一个统一返回数据类,一般返回的数据包括code 状态码,是否成功 true ,false ,自定义信息,及最...

    猎户星座1
  • 使用SpringBoot开发REST服务

    本文介绍如何基于Spring Boot搭建一个简易的REST服务框架,以及如何通过自定义注解实现Rest服务鉴权 搭建框架 pom.xml 首先,引入相关依赖,...

    用户1177380
  • java学习:调用 java web service

    先写一个java的class:AwbModel(相当于要在web service中传输的实体对象) package webservicesample; pub...

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券