第9次Java作业+LSYang

【P270】宠物商店代码(各个不同功能的类放在不同的包中定义)

org.lsy.demo.a里的Pet.java

1 package org.lsy.demo.a;
2
3 public interface Pet{    // 定义宠物接口
4     public String getName() ;
5     public String getColor() ;
6     public int getAge() ;
7 }

org.lsy.demo.b里的Cat.java

 1 package org.lsy.demo.b;
 2
 3 import org.lsy.demo.a.Pet ;
 4
 5  public class Cat implements Pet{    // 猫是宠物,实现接口
 6     private String name ;    // 宠物名字
 7     private String color ;    // 宠物颜色
 8     private int age ;        // 宠物年龄
 9     public Cat(String name,String color,int age){
10         this.setName(name) ;
11         this.setColor(color) ;
12         this.setAge(age) ;
13     }
14     public void setName(String name){
15         this.name = name ;
16     }
17     public void setColor(String color){
18         this.color = color;
19     }
20     public void setAge(int age){
21         this.age = age ;
22     }
23     public String getName(){
24         return this.name ;
25     }
26     public String getColor(){
27         return this.color ;
28     }
29     public int getAge(){
30         return this.age ;
31     }
32 };

org.lsy.demo.b里的Dog.java

 1 package org.lsy.demo.b;
 2
 3 import org.lsy.demo.a.Pet;
 4
 5 public class Dog implements Pet{    // 狗是宠物,实现接口
 6     private String name ;    // 宠物名字
 7     private String color ;    // 宠物颜色
 8     private int age ;        // 宠物年龄
 9     public Dog(String name,String color,int age){
10         this.setName(name) ;
11         this.setColor(color) ;
12         this.setAge(age) ;
13     }
14     public void setName(String name){
15         this.name = name ;
16     }
17     public void setColor(String color){
18         this.color = color;
19     }
20     public void setAge(int age){
21         this.age = age ;
22     }
23     public String getName(){
24         return this.name ;
25     }
26     public String getColor(){
27         return this.color ;
28     }
29     public int getAge(){
30         return this.age ;
31     }
32 };

org.lsy.demo.c里的PetShop.java

 1 package org.lsy.demo.c;
 2
 3 import org.lsy.demo.a.Pet;
 4
 5 public class PetShop{    // 宠物商店
 6     private Pet[] pets ;    // 保存一组宠物
 7     private int foot ;
 8     public PetShop(int len){
 9         if(len>0){
10             this.pets = new Pet[len] ;    // 开辟数组大小
11         }else{
12             this.pets = new Pet[1] ;    // 至少开辟一个空间
13         }
14     }
15     public boolean add(Pet pet){    // 增加的是一个宠物
16         if(this.foot<this.pets.length){
17             this.pets[this.foot] = pet ;    // 增加宠物
18             this.foot ++ ;
19             return true ;
20         }else{
21             return false ;
22         }
23     }
24     public Pet[] search(String keyWord){
25         // 应该确定有多少个宠物符合要求
26         Pet p[] = null ;
27         int count = 0 ;    // 记录下会有多少个宠物符合查询结果
28         for(int i=0;i<this.pets.length;i++){
29             if(this.pets[i]!=null){        // 表示此位置有宠物
30                 if(this.pets[i].getName().indexOf(keyWord)!=-1
31                     ||this.pets[i].getColor().indexOf(keyWord)!=-1){
32                     count++ ;    // 修改查找到的记录数
33                 }
34             }
35         }
36         p = new Pet[count] ;    // 开辟指定的大小空间
37         int f = 0 ;    // 增加元素的位置标记
38         for(int i=0;i<this.pets.length;i++){
39             if(this.pets[i]!=null){        // 表示此位置有宠物
40                 if(this.pets[i].getName().indexOf(keyWord)!=-1
41                     ||this.pets[i].getColor().indexOf(keyWord)!=-1){
42                     p[f] = this.pets[i] ;
43                     f++ ;
44                 }
45             }
46         }
47         return p ;
48
49     }
50 };

org.lsy.demo.c里的PetShopDemo.java

 1 package org.lsy.demo.d;
 2
 3 import org.lsy.demo.b.Cat;
 4 import org.lsy.demo.b.Dog;
 5 import org.lsy.demo.a.Pet;
 6 import org.lsy.demo.c.PetShop;
 7
 8 public class PetShopDemo{
 9     public static void main(String args[]){
10         PetShop ps = new PetShop(5) ;    // 五个宠物
11         ps.add(new Cat("白猫","白色的",2)) ;    // 增加宠物,成功
12         ps.add(new Cat("黑猫","黑色的",3)) ;    // 增加宠物,成功
13         ps.add(new Cat("花猫","花色的",3)) ;    // 增加宠物,成功
14         ps.add(new Dog("拉步拉多","黄色的",3)) ;    // 增加宠物,成功
15         ps.add(new Dog("金毛","金色的",2)) ;    // 增加宠物,成功
16         ps.add(new Dog("黄狗","黑色的",2)) ;    // 增加宠物,失败
17         print(ps.search("黑")) ;
18     }
19     public static void print(Pet p[]){
20         for(int i=0;i<p.length;i++){
21             if(p[i]!=null){
22                 System.out.println(p[i].getName() + "," + p[i].getColor()
23                     +"," + p[i].getAge()) ;
24             }
25         }
26     }
27 };
时间: 2024-10-04 03:01:14

第9次Java作业+LSYang的相关文章

第2次Java作业+LSYang

[P62 1]打印出1~10000范围中所有的“水仙花数” 1 public class JavaA1{ 2 public static void main(String args[]){ 3 int i=0, m = 100, n = 999, a = 0, b = 0, c = 0, d = 0; 4 for (i = m; i <= n; i++) 5 { 6 a = i / 100; 7 b = (i / 10) % 10; 8 c = i % 10; 9 if (i==a*a*a +

第4次Java作业+LSYang

[1] 1 public class Java401 { 2 public static void main(String[] args) { 3 String str1="Java技术学习班 20070326"; 4 String str2="Java技术学习班 20070326 MLDN 老师"; 5 String str3="330521199601221711"; 6 System.out.println(str1.substring(1

第8次Java作业+LSYang

[P257]编写应用程序,从命令行输入两个小数参数,求它们的商.要求程序中捕捉NumberFormatException异常和ArithmeticException异常. 1 public class Exception{ 2 public static void main(String[] args) { 3 try{ 4 double i=Double.parseDouble(args[0]); 5 double j=Double.parseDouble(args[1]); 6 if(j==

第5次Java作业+LSYang

[题目]建立一个人类(Person)和学生类(Student),功能要求如下:(1)Person类中包含4个私有的数据成员name.addr.sex.age,分别为字符串型.字符串型.字符型及整型,表示姓名.地址.性别和年龄.用一个4参构造方法.一个两参构造方法.一个无参构造方法可进行Person在的实例化操作,另外用一个输出方法显示4种属性.(2)Student类继承Person类,并增加成员math.english存放数学和英语成绩.一个6参构造方法.一个两参构造方法.一个无参构造方法和重写

关于提高字节流问题暨第四次java作业

import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException; public class CopyFile { /** * @param args */ public static void main(String[] args) { try { FileInputStream fis = new FileInputStream ("a.mp3"); FileOutpu

java作业4

(一)  请查看String.equals()方法的实现代码,注意学习其实现方法.(发表到博客作业上) (二)  整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toCharArray()使用说明 Length():获取字串长度 String s1 = "Welcome to java"; System.out.println("s1's length

java作业3

一.构造方法 1.源代码 public class Test{ public static void main(String[] args){ Foo obj1=new Foo(); } } class Foo{ int value; public Foo(int initValue){ value=initValue; } } 2.程序截图 3.结果分析 若构造方法已提供,则系统不再提供默认构造方法. 二.JAVA字段初始化 1.源代码 public class InitializeBlock

java作业1

编辑路径,但由于JAVA故障 JAVA不能正常安装所以在cmd输入javac产生错误不能正常运行出来 所有作业的文件已经输入,只需要在cmd中运行即可,但是JAVA有问题不能实现只能写出过程没有结果图.

JAVA作业02

一,      课堂练习 (一)构造方法 1,源代码 public class Test{ public static void main(String[] args){ Foo obj1=new Foo(); } } class Foo{ int value; public Foo(int initValue){ value=initValue; } } 2,运行结果 3,结果分析 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法. (二)JAVA字段初始化 1,源代码 pub