正如我所知道的,每当我们想要调用任何方法时,我们就创建对象并使用obj.methodname调用它的方法。
但是下面的程序调用E类的方法,而不创建对象。这怎么可能?请任何人帮助我理解这个概念。
我的意思是‘从下面的代码,这是怎么可能写E.test2();?,我认为应该是E obj=new E(); obj.test2();
class E
{
int i;
static int j;
void test1()
{
System.out.println("From test1");
}
static void test2()
{
System.out.println("From test2");
}
}
class F extends E
{
int m;
static int n;
void test3()
{
System.out.println("From test3");
}
static void test4()
{
System.out.println("From test4");
}
}
public class G {
public static void main(String args[])
{
E.test2();
F.test2();
}
} 发布于 2013-11-28 04:31:35
方法E.test2被声明为static,这意味着您可以使用该方法而无需创建该类的实例。Java中使用它的类太多了。
见文档:
理解实例和类成员
发布于 2013-11-28 04:40:56
test2方法在E类中是静态的,静态方法不是特定于对象的,而是使用"classname.methodname“语法访问的。方法名是“类名”的静态方法。
发布于 2013-11-28 04:31:06
静态方法可以使用类名调用,并且不需要该类的对象。
请阅读此:http://introcs.cs.princeton.edu/java/21function/
https://stackoverflow.com/questions/20257721
复制相似问题