在应该实例化的类中对函数进行编码时,一些变量仅暂时使用 - 例如作为for
循环中的计数器 - 一些是全局变量,其他的被返回和/或“存储”在对象的实例中instance.variable
,instance->variable
...取决于语法。< / p>
我的问题是,在所述函数中定义变量时,是否应始终使用object.variable =
,或者如果我打算将其返回或为用户提供,我是否应该只使用它?
我不专业,所以我不确定我是否以正确的方式看待它,但从我看到它的原因有几个,我应该使用其中一个,以及一些优点总是使用object.variable
:
variable
object.variable
:
和
我是以正确的方式看待这个吗?
答案 0 :(得分:1)
您使用术语“变量”来指定三个不同的概念:
局部变量可以从声明它的块中访问 ,无论是条件,循环还是函数。您的循环计数器变量应为本地,因为您不会在其他地方使用它。另外,它不能是属性,因为它与您的实例无关。
使用:variable
成员属性是绑定到该实例的属性。它的特点是它。因此,在实例化对象之前,它不可用(并且不存在于内存中)。它在类中声明,但在任何方法之外。您还必须确定其可见性(公共,受保护,私有)。请参阅encapsulation。
除非您有充分理由,否则请勿将会员标记为公开。
公共成员(无论是属性还是方法)都可以在课堂外以这种方式访问:
MyObject obj = new MyObject();
obj.myMethod();
如果您想在课程中使用它,例如,您可以使用variable
。但是,使用this.variable
是一种很好的做法:可以声明一个与属性同名的局部变量。如果你不遵守这个习惯,它可能会变成一场真正的噩梦。请注意,this
关键字可能会因您使用的语言而异。
类变量/方法独立于创建的任何实例而存在。它存在于您创建新实例之前。无论该类存在多少个实例,都只有一个副本。就像实例成员一样,您必须设置可见性。
使用MyClass.member
是一种很好的做法,无论是在课堂内还是课堂外。
我希望能回答你的问题。