成员变量&属性
使用中注意问题:
1、属性名和变量名不能相同,
2、一般变量都是private,属性都是public的,属性用于给类外调用,变量限于类内使用,感觉封装性体现得要好些
3、属性必须和一个变量相联系,而这个变量必须要在类中定义.
属性可以设成只读的,只写的。成员变量定义成公用的,在外部可以任意修改。属性在付值时,可以检查范围等。用属性控制更强一点。如果向你写的代码,区别不大,用那个都可以。
面向对象的编程方法是要抽象、封装;在类中,定义的变量是正对类本身而言,我们把它们叫做域。它可以为public ,private等;属性是针对外部看到的类的特性,是类展示给外部使用者的特性。前面我们讲到了域可以为public,但这样把域申明为public将不利于类的封装,因为外部使用者可以对类进行直接修改。所以我们就可以用到属性,我们只是公开它们的属性,至于如何对其进行赋值(set)如何进行取值(get)都已经进行了封装,对于类外部是不可见的。对于外部使用者来说只能够使用它,不能控制它,如何控制操作是由类自身决定的。你理解了吗?
1、属性名和变量名不能相同,
2、一般变量都是private,属性都是public的,属性用于给类外调用,变量限于类内使用,感觉封装性体现得要好些
3、属性必须和一个变量相联系,而这个变量必须要在类中定义.
属性可以设成只读的,只写的。成员变量定义成公用的,在外部可以任意修改。属性在付值时,可以检查范围等。用属性控制更强一点。如果向你写的代码,区别不大,用那个都可以。
面向对象的编程方法是要抽象、封装;在类中,定义的变量是正对类本身而言,我们把它们叫做域。它可以为public ,private等;属性是针对外部看到的类的特性,是类展示给外部使用者的特性。前面我们讲到了域可以为public,但这样把域申明为public将不利于类的封装,因为外部使用者可以对类进行直接修改。所以我们就可以用到属性,我们只是公开它们的属性,至于如何对其进行赋值(set)如何进行取值(get)都已经进行了封装,对于类外部是不可见的。对于外部使用者来说只能够使用它,不能控制它,如何控制操作是由类自身决定的。你理解了吗?