如何将下列代码中各个不同功能的类放在不同的包中定义?

packageaaaa;interfacePet{publicStringgetName();publicStringgetColor();publicintgetAge... package aaaa;
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 String getName() {
return name;
}
public void setColor(String color) {
this.color=color;
}
public String getColor() {
return color;
}
public void setAge(int age) {
this.age=age;
}
public int getAge() {
return 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 习题 {
public static void main (String args[]) {
PetShop ps=new PetShop(3);
ps.add(new Cat("蓝猫","灰色",2));
ps.add(new Cat("橘猫","橘黄色",1));
ps.add(new Cat("奶牛猫","熊猫色",2));
print(ps.search("灰"));
}
public static void print (Pet p[]) {
for(int i=0;i<p.length;i++) {
try {
System.out.println(p[i].getName()+", "+p[i].getColor()+", "+p[i].getAge());
}catch(Exception e) {
System.out.println(e);
}
}
}
}
展开
 我来答
笙歌抛流光
2020-08-12 · 笑看君怀她笑颜丿丿丿
笙歌抛流光
采纳数:20 获赞数:38

向TA提问 私信TA
展开全部

首先,他是可以在不同的包中,只是先定义一个interface接口,然后定义一个具体类,来实现这个接口中的方法。同包的话,较为方便。不过如果不在同包中,也可以,只是在调用时,要把某个包下的具体类名写清楚,就是把包名、类名都写上。

我给你举个例子哈:

这是在不同的包下的Dog类。同包可以直接new对象来调用;不同包的话,要把另外的包名(我起的是cn.kgc.sg.oop)加上类名(Dog)才可以以创建对象进行调用呀。

可以创建在不同的包中的。希望可以帮到你,多交流!!!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式