A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© papercup 中级黑马   /  2014-3-28 13:39  /  1160 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 papercup 于 2014-3-28 16:48 编辑
  1. import java.util.*;
  2. import static java.util.Arrays.*;
  3. public class Test22 {
  4.         public static void main (String[] args){
  5.                 int[] arr = {5,6,2,4};
  6.                 sort(arr);
  7.                 int index = binarySearch(arr,4);
  8.                 System.out.println(Arrays.toString(arr));//这里写为:System.out.println(toString(arr));    为什么不对呢?不是已经导入了吗?
  9.                 System.out.println("Index = "+index);
  10.         }

  11. }
复制代码
关于静态导入的问题。还有视频中毕老师继承了Object类有什么特殊作用呢?求大神解答!

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
  1. <font size="4">Test22  继承了  Object类
  2. Object类中有toString()方法
  3. 而Arrays中也有toString()方法。
  4. 当你在运行的时候,不明确调用Object类中有toString()方法,还是Arrays中的toString()方法。所以必须明确!</font>
复制代码
回复 使用道具 举报
调用toString方法,应该写明谁调用的吧。test22也有个toString方法
回复 使用道具 举报
刚测试了下,只要和Object类中同名的静态方法都要通过类名.方法名的方式调用,不和Object类中同名的静态方法通过静态导入后可以直接调用,
回复 使用道具 举报
我知道了,在类中定义的函数是用函数名直接调用的,而当我们导入的静态函数和类中定义的函数相同时,是直接调用类中的函数的,不会调用我们导入的静态函数,就像这样
  1. package com.blog;
  2. public class blog9{
  3.         public static void run(int d){
  4.                
  5.         }
  6.        
  7. }



  8. package com.blog;

  9. import static com.blog.blog9.run;
  10. public class blog8{
  11. public void main(String[]args){
  12.         run(6);//这里调用失败,因为类中已经定义了一个run()函数,所以不会再调用导入的同名的静态函数
  13.        
  14. }
  15. public void run(){
  16.        
  17. }
  18. }
复制代码
回复 使用道具 举报
而你的test22类默认已经继承了Object类,所以你的类继承了Object的toString()方法,所以在你的类中调用toString方法时,是调用的从Object类中继承来的toString()方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马