我对家庭作业有这个问题:
foo()
类中定义的方法Quiz
具有以下签名:public static double foo(double f)
. 你能说什么呢foo()
?
这是一个类方法
它是一个实例变量
它是一个实例方法
它是一个类属性
我认为它是一个类方法,因为它是foo()
在一个类中声明的。答案和我想的一样直截了当吗?
我对家庭作业有这个问题:
foo()
类中定义的方法Quiz
具有以下签名:public static double foo(double f)
. 你能说什么呢foo()
?
这是一个类方法
它是一个实例变量
它是一个实例方法
它是一个类属性
我认为它是一个类方法,因为它是foo()
在一个类中声明的。答案和我想的一样直截了当吗?
答案是它的一个class method
声明的字段或方法static
始终分别是类的属性或行为。
Non-static
变量是每个对象一个,而 asstatic variables
是每个类一个。
static
方法无权访问变量或方法。Non-static
static
Class_Name
可以使用with "."
(点)运算符调用方法和变量。
虽然如果没有(数学类有私有构造函数)class
,那么您也可以为类创建一个实例来调用静态方法或变量,但这不是合法的方法。private constructor
您还应该记住,您可以使用它们所在的空引用来调用....是的,它有效.... static methods or variables
class
好吧,你已经成功了一半……
在java中你有实例方法和类方法
实例方法是与类的实例相关联的方法:
class InstanceTest {
public void instanceMethod() { }
}
(...)
InstanceTest it = new InstanceTest();
it.instanceMethod();
要调用此方法,您必须实例化该类并调用它。
类方法 - 由static修饰符标识可以直接在类上调用:
class ClassTest {
public static void instanceMethod() { }
}
(...)
ClassTest.classMethod();
变量的“规则”也是一样的,你可以有实例变量和类变量。
您可以在此处了解有关实例与类成员的更多信息。
它是一个类方法,但不是因为它是在类中声明的,而是因为它是static
,因此它不使用定义它们的类的任何对象的实例变量。
它是一个类方法,因为使用了static
关键字,这意味着您不需要类的实例来调用它。
你这样称呼它:
Quiz.foo(2.5);
相反,如果它是一个实例方法(没有static
关键字),则需要在调用该方法之前进行实例化
Quiz q = new Quiz();
q.foo(2.5);
它是类方法,因为它是静态方法。它属于类而不是对象(实例)。
静态方法只能访问静态变量。原因很明显。类共有的东西不能指代特定于对象的东西。