黑马程序员技术交流社区

标题: 静态导入里的一个问题,求解???????? [打印本页]

作者: 乔九    时间: 2013-2-24 10:23
标题: 静态导入里的一个问题,求解????????
package com.itcast;
import java.util.*;
import static java.util.Arrays.*;

public class StaticImport {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                int[]arr={3,2,4};
                sort(arr);
                System.out.println(Arrays.toString(arr));为何此处的Arrays省去后报错?不是已经将Arrys中的的静态方法已经导入了吗??????????????
                int index=Arrays.binarySearch(arr,3);
                System.out.println(index);

        }

}

作者: 罗海云    时间: 2013-2-24 10:28
本帖最后由 罗海云 于 2013-2-24 10:30 编辑

好像是toString是一个属性吧.......不导包还可以用
ToString是Object的一个虚方法,因为java中所有对象的最终基类都是Object,所以
所有对象都可以重写这个方法来实现自己需要的功能..toString就是一个属性..
作者: 邢义敏    时间: 2013-2-24 10:42
唔,看毕老师的视频里面有说过:
静态导入时:
当类名重名时,需要指定具体的包名。
当方法重名是,指定具备所属的对象或者类。

作者: 陈圳    时间: 2013-2-24 10:43
错误提示:该方法在对象类型tostring()不适用于参数(int [ ])
静态导入时也说明了这一点:如果不同包内有相同的方法时,就必须把包的路径写明,不然它不知道调用哪个包内的方法.上面的错误应该是程序调用了.Object的toString()方法,然后发现你的参数不适用.

作者: 王钊    时间: 2013-2-24 10:56
陈圳 发表于 2013-2-24 10:43
错误提示:该方法在对象类型tostring()不适用于参数(int [ ])
静态导入时也说明了这一点:如果不同包内有相 ...

提示确实是这么说,但是我也有疑问了,Object的方法是不带参数的,而查阅api发现
Arrays里面的所有静态toString方法都接收参数,那么如果此题在toString里面传入了参数就可以
唯一确定一个静态方法了,而不会去找this.toString(),也应该能成功啊。
作者: 陈圳    时间: 2013-2-24 11:08
王钊 发表于 2013-2-24 10:56
提示确实是这么说,但是我也有疑问了,Object的方法是不带参数的,而查阅api发现
Arrays里面的所有静态to ...

API文档也说了...:String()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。 他都建立所有子类都复写这个方法了...所以,具体调用了哪个包,哪个类的.谁都不确定.
作者: 王钊    时间: 2013-2-24 11:25
陈圳 发表于 2013-2-24 11:08
API文档也说了...:String()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此 ...

重写方法,要求方法名、参数类型,返回值都应该一致。
但Arrays的toSring()都是静态的,而且都带参数,明显不是重写啊

作者: 陈圳    时间: 2013-2-24 11:42
哎真是的,过程是这样的.Arrays的toString()方法,复写了toString()
你没有注意一个静态导入的细节.虽然是静态导入了.但是程序分不清楚你的是静态方法还是普通方法.
静态导入的具体用法是这样的:mport static java.lang.System.out
然后是out.println();
可你是直接输出println();//意思是一样的哦.
作者: 杨杨    时间: 2013-2-24 12:01
方法重名了 util 包中有很多类都有toString 方法
作者: 陈科宇    时间: 2013-2-24 13:40
你们班有两个李刚,老师叫李刚,不区分就不知道叫的是谁,这太正常不过了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2