黑马程序员技术交流社区
标题:
哪错了啊
[打印本页]
作者:
陆华山
时间:
2011-10-15 20:36
标题:
哪错了啊
本帖最后由 陆华山 于 2011-10-15 20:39 编辑
import java.io.*;
class File
{
public static void main(String[] args) throws IOException
{
method();
}
public static void method()throws IOException
{
File a = new File("aaaab.txt");
}
}
作者:
sunyu
时间:
2011-10-16 10:54
本帖最后由 陆华山 于 2011-10-15 20:39 编辑
import java.io.*;
class File
{
public static void main(String[] args) throws IOException
{
File.method();
}
public static void method()throws IOException
{
File a = new File("aaaab.txt");
}
}
试下,
作者:
赵江锋
时间:
2011-10-16 12:06
本帖最后由 赵江锋 于 2011-10-16 12:08 编辑
没错啊 可以通过编译
2、静态方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为实例成员与特定的对象关联!因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。
作者:
724681149
时间:
2011-10-16 14:29
你使用的类的名字有问题的,不用使用File类作为你自定义的类名,你可以改为class FileTest{},这样你再试一试。
作者:
潘永辉
时间:
2011-10-16 16:03
你的自定义类名称和JAVA内置的系统类名称重复了。
作者:
朱华
时间:
2011-10-17 13:49
本帖最后由 朱华 于 2011-10-17 13:50 编辑
纯手打,请区分。
嗯,很容易范的一个错误,特别是当你调用第三方库的时候,你自己创建了一个类,把名字命名成了你本来想调用的那个类的名字,效果就如同覆盖,除非你写全包名,否则它只会NEW一个你自己刚刚定义的那个类,而不会调用你想去调用的那个类。
作者:
fso918
时间:
2011-10-17 18:01
你的类名取得不对。
你的类名和java.io包里的File类同名,当你的程序中也用到File类时,BootStrap类加载器会加载java.io包里的File类,而不是AppClassLoader加载你自己写的File类,
而java.io包中的File类没有你调用的那个静态方法。
作者:
张奇云
时间:
2011-10-17 19:13
这是你自己定义的File类,所以你要自己要提供这个类的构造方法。但是看你的代码是想用java.io包里的File类的构造方法,要么你换个类名。或者把 File a = new File("aaaab.txt"); 改成java.io.File a = new java.io.File("aaaab.txt");
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2