1

我对家庭作业有这个问题:

foo()类中定义的方法Quiz具有以下签名:public static double foo(double f). 你能说什么呢foo()

  1. 这是一个类方法

  2. 它是一个实例变量

  3. 它是一个实例方法

  4. 它是一个类属性

我认为它是一个类方法,因为它是foo()在一个类中声明的。答案和我想的一样直截了当吗?

4

5 回答 5

3

答案是它的一个class method

声明的字段或方法static始终分别是类的属性或行为。

Non-static变量是每个对象一个,而 asstatic variables每个类一个

static方法无权访问变量或方法Non-static

staticClass_Name可以使用with "."(点)运算符调用方法和变量。

虽然如果没有(数学类有私有构造函数class 那么您也可以为类创建一个实例来调用静态方法或变量,但这不是合法的方法。private constructor

您还应该记住,您可以使用它们所在的空引用调用....是的,它有效.... static methods or variablesclass

于 2012-09-01T09:13:52.853 回答
1

好吧,你已经成功了一半……

在java中你有实例方法类方法

实例方法是与类的实例相关联的方法:

class InstanceTest {
    public void instanceMethod() { }
}
(...)
InstanceTest it = new InstanceTest();
it.instanceMethod();

要调用此方法,您必须实例化该类并调用它。

类方法 - 由static修饰符标识可以直接在类上调用:

class ClassTest {
    public static void instanceMethod() { }
}
(...)
ClassTest.classMethod();

变量的“规则”也是一样的,你可以有实例变量和类变量。

您可以在此处了解有关实例与类成员的更多信息。

于 2012-09-01T09:22:45.753 回答
0

它是一个类方法,但不是因为它是在类中声明的,而是因为它是static,因此它不使用定义它们的类的任何对象的实例变量。

于 2012-09-01T09:15:05.613 回答
0

它是一个类方法,因为使用了static关键字,这意味着您不需要类的实例来调用它。

你这样称呼它:

Quiz.foo(2.5);

相反,如果它是一个实例方法(没有static关键字),则需要在调用该方法之前进行实例化

Quiz q = new Quiz();
q.foo(2.5);
于 2012-09-01T09:16:59.550 回答
0

它是类方法,因为它是静态方法。它属于类而不是对象(实例)。

静态方法只能访问静态变量。原因很明显。类共有的东西不能指代特定于对象的东西。

于 2012-09-01T09:17:50.383 回答