明确面向过程与面向对象的概念
经典故事:将大象放进冰箱
面向过程的思想:
1、将冰箱打开
2、将大象放入冰箱
3、关闭冰箱门
这种思想,关注的是完成事情的过程
面向对象的思想:
1、冰箱打开
2、冰箱存储大象
3、冰箱关闭
这种思想,关注的是如何找到一个对象去完成事情
明确类与对象的概念
对象:保时捷、宝马、奔驰、大众
类:车
简单点说,对象是类的具体体现形式;
类是抽象的,将具象化的事物(对象)进行抽象描述所得来的产物
先有类,后有对象
对象是类中具体的某一个,类中具备的特点,对象都有
面向对象:类
Driver:
司机类:
类的组成:
属性:
姓名,工号,公司,价格
行为:
开车
系统类:
自定义类:
用面向对象的思想分析绝地求生
面向对象:
核心: 类
创建类的语法:
找代驾开车
class 类名():
#属性
# 行为,能力,动态特征,方法
def 方法名(self,其他参数...):
pass
创建对象语法:
变量名 = 类名()
调用对象方法的语法:
对象名.方法名()
class Driver(): def drive_car(self): print("1、踩离合") print("2、打火") print("3、挂档") print("4、松离合给油") print("滴滴滴,一起去嗨皮") # class Girl(): # pass # class Car(): # pass # class Plane(): # pass # 面向过程 # print("1、踩离合") # print("2、打火") # print("3、挂档") # print("4、松离合给油") # print("滴滴滴,一起去嗨皮") # 面向对象 # 1.找到一个对象(创建对象) # list1 = [1,2,3] #创建一个对象,将对象存储到driver1中 driver1 = Driver() # 2.让对象开车走 调用对象的方法 driver1.drive_car()
赋属性值得两种方式
1、类实例化后再赋予属性
2、类初始化就有属性
""" 创建对象,拥有默认属性: __init__()方法的使用 """ class Driver(): #增加一个方法 def __init__(self,id,name): print("我是init方法") # 给自己加属性 self.id = id self.name = name def drive_car(self): print("工号:%d %s为您服务"%(self.id,self.name)) print("1、踩离合") print("2、打火") print("3、挂档") print("4、松离合给油") print("滴滴滴,一起去嗨皮") # 创建对象 driver1 = Driver(1001,'黄师傅') # 创建完对象,然后再赋值也是可以的 # driver1.eat='榴莲' # 2.让对象开车走 调用对象的方法 driver1.drive_car() # print(driver1.eat) driver2 = Driver(1002,'于师傅') driver2.drive_car() # print(driver2.eat)
私有属性:
只能内部访问,外部无法访问的属性
语法: __属性名(双下划线)
如果某个属性定义成了私有的:
为属性提供对应的两个方法:
getAge(self):
return self.__age
setAge(self,age):
if :
self.__age = age
class Student(): def __init__(self,name,age,gender): self.name = name self.setAge(age) # self.__age = age self.gender = gender #对私有属性提供设置值以及获取值的方法 def getAge(self): return self.__age def setAge(self,age): if 0 < age < 120: self.__age = age else: print("年龄设置范围不合理,默认为0") self.__age = 0 def study(self): print("学习使我快乐,一天不写代码会死") def playGame(self): print("玩把游戏,嗨皮一下") def sleep(self): print("闭上眼睛就睡觉,感觉在打雷") def eat(self): print("吃饭使我快乐") def introduce(self): print("我叫:%s 性别:%s 年龄:%d"%(self.name,self.gender,self.__age)) #创建对象 stu1 = Student("胡了",1800,'男') #获取属性值 # print(stu1.name) # #设置值 # stu1.name = '宋行' # print(stu1.name) # stu1.introduce() # stu1.age = 1000 # # stu1.age = -10 # stu1.introduce() #私有属性无法在外部访问 # print(stu1.__age) # stu1.setAge(30) # print(stu1.getAge()) stu1.introduce()
over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有