初学JAVA 文件名过滤器接口问题

opteva 2009-09-08 10:43:14
下边是文件名过滤器的实现代码
问题
1:accept的实现方法中:参数filename和API文档中的accept参数名(name)不一致???
方法的实现算不算“重写”呢?方法的重写不是要求方法声明完全一致吗?
2:方法accept中的参数名称好象不重要,改为别的名称一样程序可以运行,这是为什么??

import java.io.*;
class FileFilterDemo implements FilenameFilter //定义过滤文件名类
{
private String name;
private String ext;
public FileFilterDemo(String name, String ext) { //建立方法
this.name = name;
this.ext = ext;
}
public boolean accept(File dir, String filename) { //定义accept
boolean fString = true;
if(name != null)
fString &= filename.startsWith(name);
if(ext != null)
fString &= filename.endsWith("." + ext);
return fString;
}
}

public class JavaDirDemo
{
static void print(String s) { //定义print方法
System.out.println(s);
}

public static void main(String[] args)
{
File path = new File("C:/jdk/bin"); //建立文件所在目录
print("文件路径" + path); //显示工作路径
FilenameFilter x = new FileFilterDemo("java", "exe");
//定义要过滤的文件名
String s[] = path.list(x); //取得符合的文件名
for(int i=0; i <s.length; i++)
print(s[i]); //显示符合的文件名
}
}
...全文
163 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
opteva 2009-09-09
  • 打赏
  • 举报
回复
谢谢了 
我的意思是说JAVA在使用path.list(x)时,只传了一个FilenameFilter对象x进去,且指定
String name, String ext,accept中的参数是怎么传进去的???



我会提高结帖率的
windforcecn 2009-09-08
  • 打赏
  • 举报
回复
1.java.io.FilenameFilter
方法:accept(File dir, String name)

你应该看成FileFilter了。

2.方法中参数名字本来就可以随便你命名。

3.你的结帖率太低了,没人敢回了。
ruisheng_412 2009-09-08
  • 打赏
  • 举报
回复
1,重写是 父类与子类的关系 上面accept是重写的。
实现算是重写,参数必须一样

2,改为其他一样可以运行,说明你添加了新的方法,不是重写父类的
yanliang_xt 2009-09-08
  • 打赏
  • 举报
回复
1、方法的实现不能算重写,重写就是对原来的重新改写,而实现则是一个从无到有的过程。所以严格上说这不能算是重写。

2、方法是以参数的类型和个数来区分的,不以参数名字来区分。。。。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧