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

© 王宝龙 中级黑马   /  2012-9-19 13:33  /  1439 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王宝龙 于 2012-9-19 22:22 编辑

为什么我把定义的HashMap封装在类中(第一种)编译就失败呢?
而如果放在主函数下里面就可以呢?这是哪里有问题?
第一种:

  1. import java.util.*;

  2. class MyMap
  3. {
  4. HashMap<Integer,String> hm = new HashMap<Integer,String>();
  5. hm.put(1,"abcd");
  6. hm.put(2,"abc");
  7. hm.put(3,"def");
  8. hm.put(4,"ghi");
  9. hm.put(5,"jkl");
  10. hm.put(6,"mno");
  11. hm.put(7,"pqrs");
  12. hm.put(8,"tuv");
  13. hm.put(9,"wxyz");

  14. public HashMap<Integer,String> getHm()
  15. {
  16.   return hm;
  17. }
  18. }
  19. class Second
  20. {
  21. public static void main(String[] arge)
  22. {
  23.   
  24.   for(int i=1;i<10;i++)
  25.    sop(new MyMap.getHm().get(i));
  26. }
  27. public static void sop(Object obj)
  28. {
  29.   System.out.println(obj);
  30. }
  31. }
复制代码
第二种:
  1. import java.util.*;
  2. class Second
  3. {
  4.         public static void main(String[] arge)
  5.         {
  6.                 HashMap<Integer,String> hm = new HashMap<Integer,String>();
  7.                 hm.put(1,"abcd");
  8.                 hm.put(2,"abc");
  9.                 hm.put(3,"def");
  10.                 hm.put(4,"ghi");
  11.                 hm.put(5,"jkl");
  12.                 hm.put(6,"mno");
  13.                 hm.put(7,"pqrs");
  14.                 hm.put(8,"tuv");
  15.                 hm.put(9,"wxyz");
  16.                 for(int i=1;i<10;i++)
  17.                         sop(hm.get(i));
  18.         }
  19.         public static void sop(Object obj)
  20.         {
  21.                 System.out.println(obj);
  22.         }
  23. }
复制代码

3 个回复

倒序浏览
import java.util.*;



class MyMap

{

HashMap<Integer,String> hm = new HashMap<Integer,String>();

hm.put(1,"abcd");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行

hm.put(2,"abc");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行

hm.put(3,"def");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行

hm.put(4,"ghi");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行

hm.put(5,"jkl");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行

hm.put(6,"mno");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行

hm.put(7,"pqrs");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行

hm.put(8,"tuv");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行

hm.put(9,"wxyz");//语句必须放在函数体内,不能直接放在类里面。编译失败,创建对象时也不会自动执行



public HashMap<Integer,String> getHm()

{

return hm;

}

}

class Second

{

public static void main(String[] arge)

{



for(int i=1;i<10;i++)

  sop(new MyMap.getHm().get(i));//这样创建了十个对象
}

public static void sop(Object obj)

{
  System.out.println(obj);

}

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马