标签:面向对象 类 __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
标签:面向对象 类 __init__()
原文地址:http://blog.51cto.com/13694862/2107534