黑马程序员技术交流社区

标题: 为什么关于集合的程序中方法声明中少不了static [打印本页]

作者: 张翼    时间: 2011-11-9 09:31
标题: 为什么关于集合的程序中方法声明中少不了static
import java.util.*;
public class acc
{
        public static void main(String argv[])
        {
                ArrayList al=new ArrayList();
                al.add("java1");
                al.add("java2");
                al.add("java3");
                sop(al.size());
        }
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
}
sop方法中为什么少不了static呢?
作者: 成杰    时间: 2011-11-9 09:36
因为你写的sop()方法在main()中调用了,而main()方法是静态的,静态方法中不能调用非静态的方法。因此要加上static 。
你可以不加static,但是在main()的方法中,就要通过对象调用
acc a = new acc();
a.sop();
作者: 柴亚飞    时间: 2011-11-9 16:19
我发现,有很多类似楼主的问题。我需要做的就是把以前的回答复制一下啊

必须通过对象名.方法名的方式对非static方法进行调用。

”可以“通过类名.方法名的方式对static的方法进行调用。如果调用static方法的方法与这个static方法位于同一个类内,那么可以省略被调用的static方法的类名。例如main()方法内部经常通过直接调用方法名的方式对位于同一个类中的static方法直接调用。这里其实是使用了默认的本身类名。也可以通过对象名。方法名的方式调用。你可以试试。
作者: 欧阳文愿    时间: 2011-11-9 16:47
我没事会去三期和四期的交流区看看,其实有很多问题学长们也遇到过,下次问问题前先看看有前几期有没有问过,看一下学长们是怎么解决的,可以节省自己和大家的时间看视频。呵呵




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