我在家庭作业上有这个问题:
班级
foo()
中定义的方法Quiz
具有以下签名:public static double foo(double f)
。您对foo()
有什么看法?
这是一种课堂方法
这是一个实例变量
这是一个实例方法
- 醇>
这是一个类属性
我认为它是一个类方法,因为在类中声明了foo()
。答案是否像我想的那样直截了当?
答案 0 :(得分:3)
答案是它的class method
使用static
声明的字段或方法始终是该类的属性或行为。
Non-static
变量每个对象一个,其中static variables
一个
类强>
static
方法不对Non-static
变量或方法访问。
static
(点)运算符的Class_Name
调用 "."
个方法和变量。
虽然如果,class
不拥有private constructor
( Math类有私人构造函数),那么你也可以创建一个实例来调用静态方法或变量,但不是合法的方法。
您还应该记住,您可以使用<{1}}所在的{strong> null参考 致电 static methods or variables
....是的,它有效......
答案 1 :(得分:1)
嗯,你在那里... ...
在java中,你有 Instace方法和类方法
实例方法是绑定到类实例的方法:
class InstanceTest {
public void instanceMethod() { }
}
(...)
InstanceTest it = new InstanceTest();
it.instanceMethod();
要调用此方法,您必须设置此类并调用它。
可以直接在类上调用 static 修饰符标识的Class方法:
class ClassTest {
public static void instanceMethod() { }
}
(...)
ClassTest.classMethod();
对于变量,'rule'也是一样的,你可以有实例和类变量。
您可以详细了解实例与班级成员here。
答案 2 :(得分:0)
这是一个类方法,但不是因为它在类中声明,而是因为它是static
,因此它不使用它们所定义的类的任何对象的实例变量。
答案 3 :(得分:0)
这是一种类方法,因为使用了static
关键字,这意味着您不需要该类的实例来调用它。
你称之为:
Quiz.foo(2.5);
相反,如果它是一个实例方法(没有static
关键字),则需要在调用方法之前实例化
Quiz q = new Quiz();
q.foo(2.5);
答案 4 :(得分:0)
它是一个类方法,因为它是静态方法。它属于类而不属于对象(实例)。
静态方法只能访问静态变量。原因很明显。类中常见的东西不能引用特定于对象的东西。