在构造器中编写类的属性和在构造器之外编写类的属性有以下不同之处:
- 作用域:在构造器中定义的属性是局部变量,只能在构造器内部访问。而在构造器之外定义的属性是全局变量,可以在整个类的范围内访问。
- 生命周期:在构造器中定义的属性是每次创建对象时都会重新初始化的,每个对象都有自己的一份属性副本。而在构造器之外定义的属性是类的静态属性,所有对象共享同一份属性副本。
- 访问权限:在构造器中定义的属性可以使用访问修饰符(如private、protected、public)来限制属性的访问权限。而在构造器之外定义的属性默认是public访问权限,所有对象都可以直接访问。
- 初始化时机:在构造器中定义的属性是在对象创建时进行初始化的,可以根据需要在构造器中对属性进行赋值。而在构造器之外定义的属性可以在类的任何地方进行初始化,不受对象创建时机的限制。
总结起来,构造器中定义的属性适用于需要每个对象都有自己的属性副本的情况,而构造器之外定义的属性适用于所有对象共享同一份属性副本的情况。