面向对象初识

类: 具有相同属性和方法的一类事物
描述一类事物的轮廓的一个机制
对象/实例:对象(实例)就是类的实例化
对象就是 类的一个具体的的表现
实例化 : 类 --> 对象
实例化的过程:
1.创建一个属于对象的空间
2.执行__init__,把这个空间传递给init的第一个参数
3.把这个空间地址作为返回值给对象变量
定义一个类:
class Cla:pass
在类中直接可以定义的内容:
静态属性 : 这个类拥有的,所有的对象都共享的属性
动态属性: 方法\定义在类中的函数,描述的是所有对象共享的行为
类名的作用;
实例化的时候 对象 = 类名()
对象名的作用:
操作对象的属性
调用方法

一个类中是可以没有__init__方法的
1.创建一个空间给对象
2.将这个空间的地址返回
类中的代码是在实例化之前执行的
类空间中有静态属性和动态属性
对象的命名空间和类的命名空间之间的关系
对象和类之间有一个单向的联系,类对象指针
对象在使用某一个名字的时候,如果在自己的空间中没有找到,就要到类的空间中去找

在实例化的过程中,有开辟一个属于对象的一块空间

对于静态属性的操作
对象可以查看类中的静态变量,但是不能修改
并且一旦修改,就不能取到类中的内容了(除非手动删除这个修改的属性)
所有的静态变量的修改,都应该由类名来完成,而不是使用对象名来完成
景甜属性就是描述所有的对象都共享的某一个值


如果静态变量是一个不可变的数据类型,那么只要对象修改这个数据,就相当于修改对象自己空间创建
如果静态变量是一个可变的数据类型,那么对象修改这个容器中的元素,相当于修改类的空间中的元素
如果静态变量是一个可变数据类型,那么对象直接对这个变量重新赋值,相当于修改对象自己空间中的元素
总结:
只要是静态变量,就用类名去修改,永远修改成功,并且所有都共享这个改变


面向对象的总结:
对象的命名空间 : 类指针\对象的所有属性
类的命名空间 ; 方法和静态变量(字段)
对象在寻找名字的时候:先找对象自己内存空间中的而找不到就去类中的命名空间中寻找
类中的名字写入内存的时间: 代码从上向下执行的时候就已经写入,一定是在实例化之前
建泰变量 ; 尽量用类名去操作


组合:
  组合就是: 一个类对象属性是另外一个类中的对象
posted @ 2018-11-24 19:11  7411  阅读(66)  评论(0)    收藏  举报