1.面向对象和面向过程的区别
1.面向过程:
侧重于怎么做?
(1)把完成某一需求的所有步骤从头到尾逐步实现;
(2)将某些功能独立的代码封装成一个个函数;
(3)最后完成的代码就是顺序的调用不同的函数;
特点:
(1)注重步骤和过程,而不注重职责分工;
(2)当需求复杂时,代码会变得非常复杂;
(3)开发复杂项目的时候,没有固定的套路,开发难度大;
2.面向对象:
侧重于谁来做?
相比较于函数,面向对象是更大的封装,根据职责分工在一个对象中封装多个方法。
(1)在完成需求前,先明确职责---要做的事(方法);
(2)根据职责,确定不同的对象,在对象中封装多个不同的方法;
(3)最后完成的代码,就是顺序的让不同的对象调用不同的方法;
特点:
(1)注重对象和职责,不同的对象承担不同的职责;
(2)提供固定的套路,适合复杂的需求,是专门应对复杂项目的开发;
(3)在面向过程的基础上,要再学习一写面向对象的语法;
面向对象的两个核心概念(类和对象)
1.类
就是一类具有相同特征或行为的事物的统称。
2.对象
由对象创建出来的具体存在。
3.类和对象的关系
(1)先有类再有对象;
(2)类是模板,对象是根据这个模板创建出来的;
(3)类只需要有一个,但是对象可以有多个
3.类名以及属性和方法的确定
类名的确定
类名按照大驼峰法命名:
1.每个单词的首字母大写
2.单词和单词之间没有下划线。
属性和方法的确定
1.属性通常是对象的特征描述;
2.对象具有的行为(动作)通常定义为方法;
(在需求中没有涉及时,则不需要考虑)
例如:
class Cat: #定义猫类
def eat(self): #方法
print('%s爱吃鱼' %(self.name))
def drink(self):
print('%s要喝水' %(self.name))
hellokitty = Cat()
hellokitty.name='胖橘'
hellokitty.eat()
hellokitty.drink()
注意:
self: 哪一个对象调用的方法,self就是哪一个对象的引用(指向对象的内存地址空间) 在调用方法的时候 程序员不需要传递self参数(定义的时候 第一个参数必须是self)
结果: