面向对象编程

编程思想:
面向过程编程:c (只有逻辑和过程)
a = 1
b = 2
print(a+b)
面向对象编程:java、c++、oc、python等(有类语法)-->(以对象为工具实现功能)
对象.sum(1,2)
函数式编程:c、java、python (以函数为工具实现功能)
def sum(num1, num2):
return num1+num2
sum(1,2)

  • 类:具有相同属性和相同功能的对象的集合。是抽象的
  • 对象:就是类的实例,是具体的
    声明类的格式:
    class 类名:
    类的内容
    class: python中声明类的关键字
    类名: 标识符,1.首字母大写!!!! 2.见名知义
    冒号: 固定格式,冒号后一个缩进的内容,就是类的内容
    类的内容:1.类变量 2.对象属性 3.方法(构造方法,对象方法、类方法、静态方法)
    1.类变量: 声明在类中,方法外的变量;要通过类去获取(通过类能够让其具体的属性)
    方法: 声明在类中的函数就叫方法

声明一个人对应的类
class Person:
count就是类变量(通过类去使用)
count = 61 # 局部变量,作用域是整个类

 构造方法__init __,名字固定;
通过类创建对象的时候,系统会自动的调用这个方法去初始化对象的属性

self:
1.类中所有的对象方法都会默认有一个self参数,
用来指向调用方法的对象(谁调用当前这个方法就指向谁)

2.调用带有self的方法,不需要给self传参,系统会自动将方法调用者传给它
def __init__(self, name1=''):
    # 我们一般在这个地方去声明对象的属性
    # name、age、gender就是人这个类的对象的属性
    self.name = name1
    self.age = 0
    self.gender = '女'

对象方法:1.所有的对象方法都有一个默认的参数self
2.直接声明在类中的函数,都是对象方法
3.对象方法必须使用对象去调用
def run(self):
print('跑起来')

  • 1.使用类变量:通过 类名.类变量 的形式在类外去使用类变量
    print(Person.count)
  • 2.name、age、gender都是对象属性,对象属性的使用: 对象.属性名
  • 3.对象方法run: 对象方法只能通过对象去调用--> 对象.方法名(实参列表)
    run() #NameError: name 'run' is not defined
    Person.run()
    4.怎么声明对象:类名(参数)
    通过创建对象:会自动调用类的init方法去初始化对象的属性
    类名(参数),这个参数有没有,有几个就看init方法
    p1 = Person('xiaoming')
    通过person类,创建了一个对象p1
    创建完对象后,就可以通过对象获取对象属性:对象.属性名
    print(p1.name)
    通过对象给属性赋值
    p1.age = 10
    print(p1.age)
    通过对象去调用对象方法(也叫给对象发送消息)
    p1.run()
    5.一个类可以拥有多个对象
    P2 = Person
    p2.name ='lLuoHao'
    p2.age = 34
    p2.gender ='男‘
    p2.run()

你可能感兴趣的:(面向对象编程)