java interface 问题

问题描述

interfacePet{//定义宠物接口publicStringgetName();publicStringgetColor();publicintgetAge();}classCatimplementsPet{//猫是宠物,实现接口privateStringname;//宠物名字privateStringcolor;//宠物颜色privateintage;//宠物年龄publicCat(Stringname,Stringcolor,intage){this.setName(name);this.setColor(color);this.setAge(age);}publicvoidsetName(Stringname){this.name=name;}publicvoidsetColor(Stringcolor){this.color=color;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnthis.name;}publicStringgetColor(){returnthis.color;}publicintgetAge(){returnthis.age;}};classDogimplementsPet{//狗是宠物,实现接口privateStringname;//宠物名字privateStringcolor;//宠物颜色privateintage;//宠物年龄publicDog(Stringname,Stringcolor,intage){this.setName(name);this.setColor(color);this.setAge(age);}publicvoidsetName(Stringname){this.name=name;}publicvoidsetColor(Stringcolor){this.color=color;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnthis.name;}publicStringgetColor(){returnthis.color;}publicintgetAge(){returnthis.age;}};classPetShop{//宠物商店privatePet[]pets;//保存一组宠物privateintfoot;publicPetShop(intlen){if(len>0){this.pets=newPet[len];//开辟数组大小}else{this.pets=newPet[1];//至少开辟一个空间}}publicbooleanadd(Petpet){//增加的是一个宠物if(this.foot<this.pets.length){this.pets[this.foot]=pet;//增加宠物this.foot++;returntrue;}else{returnfalse;}}publicPet[]search(StringkeyWord){//应该确定有多少个宠物符合要求Petp[]=null;intcount=0;//记录下会有多少个宠物符合查询结果for(inti=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=newPet[count];//开辟指定的大小空间intf=0;//增加元素的位置标记for(inti=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++;}}}returnp;}};publicclassPetShopDemo{publicstaticvoidmain(Stringargs[]){PetShopps=newPetShop(5);//五个宠物ps.add(newCat("白猫","白色的",2));//增加宠物,成功ps.add(newCat("黑猫","黑色的",3));//增加宠物,成功ps.add(newCat("花猫","花色的",3));//增加宠物,成功ps.add(newDog("拉步拉多","黄色的",3));//增加宠物,成功ps.add(newDog("金毛","金色的",2));//增加宠物,成功ps.add(newDog("黄狗","黑色的",2));//增加宠物,失败print(ps.search("黑"));}publicstaticvoidprint(Petp[]){for(inti=0;i<p.length;i++){if(p[i]!=null){System.out.println(p[i].getName()+","+p[i].getColor()+","+p[i].getAge());}}}};问下~怎么输出主方法里的全部数据需要添加什么

解决方案

解决方案二:
这代码看着有点别扭,需要仔细认真看
解决方案三:
全部数据什么意思
解决方案四:
啥叫主方法里的全部数据?猜测你是想输出全部带“黑”关键字的Pet,你主方法里第二条和最后一条添加的Pet记录都有“黑”publicstaticvoidmain(Stringargs[]){PetShopps=newPetShop(5);//五个宠物ps.add(newCat("白猫","白色的",2));//增加宠物,成功ps.add(newCat("黑猫","黑色的",3));//增加宠物,成功ps.add(newCat("花猫","花色的",3));//增加宠物,成功ps.add(newDog("拉步拉多","黄色的",3));//增加宠物,成功ps.add(newDog("金毛","金色的",2));//增加宠物,成功ps.add(newDog("黄狗","黑色的",2));//增加宠物,失败print(ps.search("黑"));}

但是你的PetShop大小是5啊,最后一个没加进去,是这意思么
解决方案五:
pet[]类型是私有的,在print方法里面不可见,参数怎么传进去

时间: 2024-10-14 06:42:49

java interface 问题的相关文章

初学者-java interface基本问题

问题描述 java interface基本问题 我是初学者,请教大家一个问题: 现在写程序的时候,老师会经常说我们继承这个接口或者实现接口什么的,问题是 接口不是抽象类吗,它里面的方法不都是抽象方法(我理解就是只有一个方法名,里面没有任何功能) 这样的方法不就相当于空吗?我们这么调用有什么用呢? 我的理解哪里有问题,希望大家帮我一下 解决方案 接口是接口 抽象类是抽象类 接口只包含了要实现的功能描述,即规则规范 抽象类则是有部分代码是包含业务逻辑或实现,部分业务如何实现由子类来确定 解决方案二:

java interface的两个经典用法_java

本文为大家分享了java interface的两个经典用法,供大家参考,具体内容如下 1.Java多态接口动态加载实例 编写一个通用程序,用来计算没一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都为3个整数A.B.C的表达式.现有两种工具:Car和Plane,其中Car的速度运算公式为:A+B+C.需要编写三个类:ComputeTime.java,Palne.java,Car.java和接口Common.java.要求在未来如果增加第3中交通工具的时候,不必修改 以前的任何程序,

Java Interface 是常量存放的最佳地点吗?

Java Interface 是常量存放的最佳地点吗?Java/l-Java-Interface/index.shtml#author1">bright (brightsee@21cn.com) 由于Java Interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量.因而Interface通常是存放常量的最佳地点.然而在Java的实际应用时却会产生一些问题. 问题的起因有两个,第一,是我们所使用的常量并不是一成不变的,而是相对于变量不能赋值改变.例如我

JAVA 的interface观念 与C++ 多重继承的比较

interface与多重继承的观念 不管是Java的interface或是C++的多重继承╋在物件导向的理论里╋都算是蛮新颖的概念.所以这里我们谈的╋是以程式语言的角度╋看看Java interface的所有意义与功能╋是否C++的多重继承能全部诠释?或是相反地以Java的来诠释C++的. 首先让我们来复习一下什么是C++的多重继承. 「继承」通常在物件导向程式语言中╋扮演着程式码的重复利用的重责大任╋而C++的多重继承则让某一个子类别可以继承许多分属于不同资料型别的父类别如下: #includ

java排序算法

Java 1.0和1.1库都缺少的一样东西是算术运算,甚至没有最简单的排序运算方法.因此,我们最好创建一个Vector,利用经典的Quicksort(快速排序)方法对其自身进行排序. 编写通用的排序代码时,面临的一个问题是必须根据对象的实际类型来执行比较运算,从而实现正确的排序.当然,一个办法是为每种不同的类型都写一个不同的排序方法.然而,应认识到假若这样做,以后增加新类型时便不易实现代码的重复利用. 程序设计一个主要的目标就是"将发生变化的东西同保持不变的东西分隔开".在这里,保持不

JAVA:将反射技术应用于工厂模式(Factory)和单例模式(Singleton)的简单代码

反射技术大量用于Java设计模式和框架技术,最常见的设计模式就是工厂模式(Factory)和单例模式(Singleton). 参考URL: http://blog.csdn.net/xiaohai798/article/details/11640427 用接口来沟通不同程序的开发进度,不必等上游程序写好代码之后,再注入后面流程的程序员.且在实现上,可以用配置文件灵活变更,而不用重编译整个项目. InterfaceTest.java: interface InterfaceTest { //基于接

java innerclass-Thinking in java 中遇到的关于内部类的小问题

问题描述 Thinking in java 中遇到的关于内部类的小问题 // Sequence.java interface Selector{ boolean end(); Object current(); void next();} public class Sequence{ private Object[] items; private int next = 0; public Sequence(int size){ items = new Object[size]; } public

转 Java中的native关键字

一.  什么是Native Method    简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C.这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数.    "A native method is a Java method whose implementati

Java千百问_05面向对象(004)_java接口到底是什么

1.什么是接口 接口(interface)不是一个类,它是抽象方法的集合.一个类实现一个接口,从而继承和实现接口的抽象方法.  抽象方法看这里:java中抽象概念如何体现的 接口的特点如下,先看与类类似的特点: 接口的写法和写一个类类似,但它们是两个不同的概念.类描述对象的属性和行为.接口仅仅定义了事物的行为,且不会具体化这个行为. 除非实现接口的是抽象类,不然接口中的所有方法必须在类(实现这个接口的类)中定义且实现. 接口同类一样,可以包含任何数量的方法. 接口同类一样,被写在同一个.java