您可以请某人向我解释为什么在调用java中的main函数的非静态方法之前必须创建一个实例?这背后的原因是什么?
答案 0 :(得分:3)
因为,他们是实例成员,要访问它们,您需要实例。
当从同一个类蓝图创建多个对象时,它们每个都有自己不同的实例变量副本。在Bicycle类的情况下,实例变量是节奏,齿轮和速度。每个Bicycle对象都有自己的这些变量值,存储在不同的内存位置。
现在关于static
有时,您希望拥有所有对象共有的变量。这是通过静态修改器完成的。在声明中具有static修饰符的字段称为静态字段或类变量。它们与类相关联,而不是与任何对象相关联。该类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。任何对象都可以更改类变量的值,但也可以在不创建类实例的情况下操作类变量。
答案 1 :(得分:0)
静态方法是类级方法,因此不需要实例。
非静态方法是实例方法。因此需要一个实例。
答案 2 :(得分:0)
如果没有这个,面向对象的编程实际上与传统的程序编程没有什么不同。执行非静态函数时,可以访问属于该对象的所有变量。
话虽如此,请仔细查看您正在调用的功能,看看它们是否可以保留static
。 static
功能更便携,不太可能造成副作用。
答案 3 :(得分:0)
类的所有静态事物总是属于一个类,它们被视为类的属性。这就是为什么它们可以通过它们在该类中的名称调用,并在具有类名的类。
类的所有非静态事物始终属于对象,它们始终被视为对象的属性。这就是为什么只有在(。)点运算符创建对象后才能调用它们。