面向对象思想:
1.把数据及对数据的操作的方法放在一起,作为一个相互依赖的整体--对象。
2.把同类对象抽象出其共性,形成类。例如:老板和员工有很多共性,可以形成一个Person类。
3.类中的大多数数据,只能用本类的方法进行处理。例如:我有100块,不可能让你来花。
4.类通过一个简单的外部接口与外界进行联系。对象之间通过消息进行通信。
5.程序流程有用户在使用中决定。
面向过程:
强调的是功能行为,解决问题需要哪些步骤。
例如:盖房子先活水泥,再砌砖.....
面向对象:
关注的是解决问题需要哪些对象。
例如:要盖房子的话,只需要找到能盖房子的人。
把大象关进冰箱的不同思路:
面向过程思想:
1打开冰箱门。
2.将大象关进冰箱。
3.关闭冰箱门。
面向对象思想:
1.找到一个能够打开冰箱的人。
2.找到能够将大象关进冰箱的人。
3.找到一个能够关闭冰箱的人。
因为生活中,很多事情我们不想干。所以想找一能够干这些事情的对象。若不存在这个对象,就创建这个对象。让它把这些事情干了,然后我们就完成了这个任务。
例如:
图纸相当于类,车相当于对象
可以对照图纸造很多颜色不一样的车。
同样,可以通过类造出不同的对象。
类的设计:
只关心3样东西:
类名:见名知意,首字母大写,其它遵循驼峰原则。
属性:见名只意,其它遵循驼峰原则。
行为(方法或功能):见名知意,其它遵循驼峰原则。
例如:老婆的类名为wife,wife的属性有:名字,年龄等等,其方法有:吃,喝等等。
创建类:
类:一种数据类型,本身并不占内存空间,跟所学过的number,string,booleann等相似。用类创建的实例化对象(变量),对象占内存空间。
格式:
class 类型(父类列表):
属性
行为
例子:
class Person(object): #object: #object为所有类的父类,一般没有合适的父类就写父类。
#定义属性:
name=""
age=0
height=0
weight=0
#定义方法(定义函数):
#注意:方法的参数必须以self当第一个参数,self代表类的实例(某个对象)。
def run(self):
print(‘run‘)
def eat(self,food)
print(‘eat‘+food)
实例化对象:
格式: 对象名=类名(参数列表) #若没有参数列表,也不能省略括号
例如:pr1=person()
pr2=person()
注意:对象在堆区,变量在栈区。pr1,pr2在栈区,它们存的是堆区的对象地址。不同的对象在堆区域的地址不同。
访问对象的属性和方法:
per=person() #实例化对象per
访问属性:
格式:对象名.属性名
赋值:对象名.属性名=新值。
per.name=‘bob‘
per.age=18
per.height=160
访问方法:
格式:对象名.方法名(参数列表)
per.run()
per.eat(‘apple‘)
#题目:设计类实现人开枪射子弹
class Person:
def __init__(self,gun):
self.gun=gun
def fire(self):
self.gun.shoot()
def fillBullet(self):
self.gun.bullet.BulletCount+=1
print(‘填装了一发‘)
class Gun:
def __init__(self,bullet):
self.bullet=bullet
def shoot(self):
self.bullet.BulletCount-=1
if self.bullet.BulletCount<=0:
print(‘没有子弹了‘)
else :
print(‘还有%d发‘ %self.bullet.BulletCount)
class Bullet:
def __init__(self,BulletCount):
self.BulletCount=BulletCount
调用:
bullet=Bullet(5)
gun=Gun(bullet)
per=Person(gun)
per.fire()
原文地址:https://www.cnblogs.com/yulianggo/p/9217440.html