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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何羡玉 中级黑马   /  2013-4-23 15:29  /  1447 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何羡玉 于 2013-4-23 21:47 编辑

ArrayList建在主函数外就错了,把它移到主函数内就对了,这是为什么呢

[6XV2XQ[$M%P8OULS4O~X4L.jpg (37.47 KB, 下载次数: 12)

[6XV2XQ[$M%P8OULS4O~X4L.jpg

1NG@BCP}2G7QL%WIEROI1LF.jpg (38.65 KB, 下载次数: 4)

1NG@BCP}2G7QL%WIEROI1LF.jpg

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

7 个回复

倒序浏览
这是因为你把 al.add(...) 这些语句定义在成员变量的位置。
所以jvm去编译的时候,就会默认这些也是成员变量。
所以就编译不过去咯。
测试代码如下:
public class arrayListTest
{
        static ArrayList al = new ArrayList();
    public static void main(String[] args)
    {
            al.add("java1");
            al.add("java2");
            System.out.println(al.size());
            System.out.println(al);
    }
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
................大神啊...
回复 使用道具 举报
本帖最后由 尹丽峰 于 2013-4-23 16:47 编辑

ArrayList al = new ArrayList()在主函数外面写只能用静态修饰 真想写外面就在定义一个方法放进去

  1. public class ArrayListDemo
  2. {
  3. ArrayListDemo(String str, String str1)
  4. {

  5. ArrayList al = new ArrayList();
  6. al.add(str);
  7. al.add(str);
  8. System.out.println(al);
  9. System.out.println(al.size());
  10. }



  11. public static void main(String[] args)
  12. {
  13. new ArrayListDemo("java1", "java2");

  14. }
  15. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
     类由成员变量和成员方法组成,主方法是一个特殊的成员方法。ArrayList al = new ArrayList();可以放在主方法外,这样可以把al这个对象作为这个类的成员变量,但是在主方法中调用al就会出错,因为主方法是静态的,这个al也要设为静态的。
     成员变量和成员方法都有固定的格式,下面的al.add("java1")等操作是不能作为成员的,只能放在一个方法里,所以编译不能通过。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
刘胜寒 发表于 2013-4-23 16:21
................大神啊...

小寒哥啊 别笑我啊
回复 使用道具 举报
何羡玉 发表于 2013-4-23 16:57
小寒哥啊 别笑我啊

我是说
沙发是大神
回复 使用道具 举报
ArrayList al = new ArrayList();
al.add("java01");
al.add("java01");
al.add("java01");

public static void main(String[] args)  //主函数也是一种特殊的函数  它的使用了一般函数大致相同 只不过他是程序的入口 可以被Jvm识别
{
        System.out.println(al.size());// 如果你把ArrayList定义到外面去了 那么在这句话中的al就成了一个没有定义的局部变量  根本找不到这个al。
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

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