码迷,mamicode.com
首页 > 编程语言 > 详细

Python --013--面向对象

时间:2018-04-25 10:21:04      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:面向对象      __init__()   

面向对象

·面向对象的思想

 a=10  int 类型的对象

    str=‘hehe‘
    str()#出错不能够同时引用内置方法

第一个面向对象的语言:SamlLTalk
C语言(单纯面向过程的语言)-->c++加入面向对象的思想
--->Java 面向对象的思想革命(纯面向对象的思想)
Python :面向对象的思想

面向对象OOP:面向对象的编程object oritented programme

·对象
万物皆对象:一切客观存在的事物

1、有什么:属性
2、能做什么:方法

对象:属性+方法(电脑)

对象的属性:
对象的属性可能也是一个对象

对象的方法:
对象方法的使用者又是一个对象

·客观世界是由对象组成的
1、小对象组成了大对象(小对象是大对象的属性)
2、对象彼此之间方法调用

·如何建立解题思想

例:北京---->上海---->
1、找对象(怎么去):
找到交通运输方式(高铁,汽车,飞机,小黄车)
2、找方法(怎么做):
调用交通工具(高铁)运输方法

·解决客观问题:

    1、把解决问题所需要的对象准备好
    2、对象之间如何配合,完成需求

面向过程:

北京-保定-石家庄-邯郸-郑州-杭州-上海虹桥

面向对象:

北京---上海虹桥

小结:

    1、面向过程的编程思想:要把每一步细化到十分精细,只考虑过程
    2、面向对象的编程思想:只需要找到合适的对象,调用合适的方法,过程是次要考虑的

客观世界由对象组成,处理问题要先找到对象,其次找到方法,对象之间需要彼此调用,
小对象组成大对象。

面向对象在计算机领域中的使用

计算机需求,来源于客观世界:
把客观世界的需求用计算机来实现

    淘宝、QQ、微信。

用计算机解决问题:同样用面向对象的思想解决,和我们的现实世界有高度统一
(生活中如何解决这个问题,计算机就这么解决)

·计算机中的对象中
在PVM虚拟机中的一块连续存储空间(数据)

创建一个学生管理系统:

1、人工:建立档案(花名册)--记录学生的信息(管理的学生)
2、计算机: 建立一个档案---记录学生的信息(管理学生的对象--一块连续的存储空间)

学生:
1、姓名:name=‘小明’
2、班级:class=‘三年二班’
3、性别:sex=‘男’
4、年龄:age=‘10’
·小结
面向对象的思想,为解决生活中的问题提供了解决思路,应对复杂的需求
如何做更加合理,越接近现实生活,越合理

1、各司其职,对象应该保持简单性
2、弱耦合性,对象与对象之间的关系,联系尽量弱化
3、可重复性,创建的对象如果下一次拿过来可以直接使用print()
4、可扩展性,在原有功能基础之上增加新的功能

OOP
面向对象的编程 object oriented programing

    1、面向对象的语法正确
    2、拥有面向对象的思想

1、类是对象共性的抽象
2、类是客观对象在人脑中的主观反应,人对对象的一种认识
3、类是对象的模板(通过类取创建对象)

·如何编写一个类

先定义属性,方法

关键字:class
class类名:
属性:变量 类变量(全局变量)
方法:函数
class Student:
name=None
squad=None
sex=None
age=None

def learn(self):
    print (‘Student should learn hard‘)
def doHomeWork(self):
    print (‘Student should do homework‘)
s=Student()
s.name=‘Tome‘
s.age=‘10‘
s.squad=‘class 3 grade 4‘
s.sex=‘male‘
s.learn()#Student should learn hard
s.doHomeWork()#Student should do homework
print s.name#Tome
print s.age#10
print s.squad#class 3 grade 4
print s.sex#male                

·方法

1、方法的声明(能做什么):
2、方法的实现()
def 方法名(self,[其他参数]):

3、self

    class Student:
            name=None
            squad=None
            sex=None
            age=None
            def doHomeWork(self):
                    print (‘Student should do homework‘)
            def jiSuan(self,a,b):
                    return a+b

        s2=Student()
        s2.doHomeWork()#Student should do homework
        s2.jiSuan(1,2)#3

    1、在调用时候自动传递,不需要人为处理
指代当前对象

    2、self.属性 用来区分类变量和局部变量

     3、方法只能在创建对象后使用

1、init(self): 前面两个下划线后面两个下划线

class Student:
         name=None
         squad=None
         sex=None
         def __init__(self):
                    print ‘this is constructor fuction‘
s=Student()#this is constructor fuction  显示错误

在创建对象的时候自动调用,不需要手工调用
创建对象也称为实例化对象,创建出来的对象也称为实例

2、__init__(self,param1,param2):
         class Student:
         name=None
         squad=None
         sex=None
         def __init__(self,a,b):
                            print  ‘%d +%d=%d‘%(a,b,a+b)
        s=Student(3,4)#3 +4=7这样才贵

构造方法
构造方法中也可以有参数,和普通方法有很多的类似之处

3、如果一个类中没有写任何构造方法,则就会默认调用父类的构造方法
4、类中可以定义多个构造方法,但是只会以最后一个构造方法为标准。
(前面的构造方法被后面的覆盖了)

    class Student:
                def __init__(self,name,squad,sex,age):
                        self.name=name
                        self.squad=squad
                        self.sex=sex
                        self.age=age
    s=Student(‘Thomas‘,‘Class3 Grade5‘,‘male‘,‘16‘)
    print s.name#Thomas
    print s.age#16
    print s.squad#Class3 Grade5
5、构造方法在开发中常常来给属性赋值
6、构造方法可以有return语句,但是只能返回None

7、构造方法还可以在return语句后调用方法(构造方法,普通方法)

    class Student:
               def learn(self):
                        print (‘Student should learn hard‘)
                def __init__(self,name,squad,sex,age):
                        self.name=name
                        self.squad=squad
                        self.sex=sex
                        self.age=age
                        return self.learn()

    s=Student(‘hehe‘,‘heh‘,‘hehe‘,‘hehe‘)#Student should learn hard

Python --013--面向对象

标签:面向对象      __init__()   

原文地址:http://blog.51cto.com/13694862/2107534

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!