面向对象初识

一.什么是面向对象(***)

面向对象是一种编程思想,能够指导程序员如何编写出更好的程序,核心是对象,程序就是一系列对象的集合,程序负责调度控制这些对象来交互着完成任务

1.面向对象的优点与缺点

优点: 1.扩展性好

    2.灵活性高

    3.复用性好

缺点: 

    1.程序的复杂度高

    2.无法准确预知结果

2.使用场景:对扩展性要求较高的程序,通常都是直接面向用户的

二.面向过程编程思想

核心是过程,过程是一步步的执行步骤,就是先做什么后做什么

1.面向过程编程的优点与缺点

优点:

  1.逻辑清晰

  2.复杂的问题简单化,流程化

缺点

  1.扩展性差

  2.可维护性差

  3.复用性低

2.使用场景:对扩展性要求较低的程序

三.类和对象

1.类

类即类型,类别,是一种抽象概念,是一系列具备相同特征和相同行为的对象的集合

2.对象

对象就是具体存在的某个事物,具备自己的特征和行为,对象就是特征和技能的结合体

3.类和对象的关系

类包含一系列对象,对象属于某个类,

在生活中是先有对象再有类,而在程序中是先有类再有对象

四.创建类和对象

定义类的语法:

class 类的名称:
    # 类中的内容 描述属性和技能 
    #描述属性用变量
    #描述行为用函数 

#类名称 书写规范  首先是见名知意 名称是大驼峰命名法  
#驼峰就是单词首字母大写 , 大驼峰是第一个字母大写,小驼峰是第一个字母小写

创建对象的语法:

class Person:
    pass

#创建对象 
p = Person()

对象中的属性,是每个对象独特而的

属性的增删改查

增加属性 
对象变量名称.属性名称 = 属性值

删除属性
del 对象的变量名称.属性名称 

修改 
对象.属性 = 新的值 

查看属性  访问的是对象的所有属性 
print(对象.__dict__)

访问对象的类信息
print(对象.__class__)

__init__方法

初始化方法,本质上是一个函数

特点:1.当实例化对象时,会自动执行__init__方法

   2.会自动将对象作为第一个参数传入

功能:给对象赋初始值

class Dog:
    def __init__(self,kind,color,age):
        self.kind = kind
        self.color = color
        self.age = age

d1 = Dog("二哈","黑白",1)
d1 = Dog("泰迪","棕色",2)

属性的查找顺序:

 

 

五.绑定方法与非绑定方法

对象的绑定方法

在默认情况下,类中的方法都是对象绑定方法,当使用对象调用该函数时会自动传入对象本身作为第一个参数,当使用类名来调用时他就是一个普通的函数,有几个参数就传几个参数

class Student:
    
    def __init__(self,name):
        self.name = name
     
    def say_hi(self):
        print("hello my name is %s" % self.name)

类绑定方法

类绑定方法用@classmethod来装饰

不管用类还是对象调用,都会自动传入类本身,作为第一个参数

非绑定方法(静态方法)

不需要访问类的数据,也不需要访问对象的数据

使用@staticmethod装饰

 

 

posted @ 2019-07-24 17:14  s686编程传  阅读(113)  评论(0编辑  收藏  举报