1.在类体中定义类成员变量时,直接对成员变量进行赋值


2.通过构造方法赋值


3.使用setter方法赋值。


这三种方法最后达成的效果是一样的,都是对对象进行的赋值。以下对其做一下简单的分析:


1.在类体中定义类成员变量时,直接对成员变量进行赋值


在C++中类是完全抽象的,不可以在类中对变量直接进行初始化。在 Java中可以直接对类对象直接赋值了。


使用这种方法,在定义变量的同时直接对类成员进行了初始化,不需要借用构造方法。这种赋值的方法适用于那些被认为不可变的成员,例如常量。如果一个经常改变的的成员使用了这种方式进行赋值,在类被继承后,使用者可能无法预知此变量的初值,而错误使用了,导致程序发生错误。 例如,程序员在使用继承下来的变量price时,大意忘记了初始化price变量,而使用了在父类中的直接赋值。最终导致无法预知的错误。对于final和static变量,可以节约内存。



2.通过构造函数方法赋值


构造函数是创建类必须要调用的函数。因此,通过构造函数对变量赋值是最合乎规矩的方法。而且多个构造函数形成重载,有利于构造对象的灵活性。对于在赋值时需要指定类型的变量,更合适使用构造函数的方法赋值。



3.使用setter方法


这是对类进行封装后,对设置变量留下的处理接口。这是在类进行实例化之后,对对象里的变量进行设置使用的。