zoukankan      html  css  js  c++  java
  • 面向对象

    一. 面向对象的编写

    面向对象编写的方法

    方式一:归类+提取公共值

    方式二:在指定类中编写和当前类相关的所有代码 + 提取公共值

    class People:
    
    	def __init__(self,name,age,gender): # 特殊的方法,如果 类名() ,则该方法会被自动执行,
    		# 目的进行数据初始化 (构造方法).通过构造方法,可以将数据进行打包,以后使用时,去其中获取即可.
    		self.n1 = name
    		self.n2 = age
    		self.n3 = gender
    
    	def kc(self):
    		data = "%s,性别%s,今年%s岁,喜欢吃" %(self.n1,self.n3,self.n2)
    		print(data)
    
    	def db(self):
    		data = "%s,性别%s,今年%s岁,喜欢玩" %(self.n1,self.n3,self.n2)
    		print(data)
    
    	def bj(self):
    		data = "%s,性别%s,今年%s岁,喜欢喝" %(self.n1,self.n3,self.n2)
    		print(data)
    
    obj = People('老狗',20,'男')      # 创建了一个对象/实例化一个对象, 将数据封装到对象中,以供自己在方法中调用, 还可以把封装了数据的对象供其他函数使用
    obj.kc()                          # 通过对象调用其中一个方法
    								  # obj是对象, db()是方法
    obj.db()
    obj.bj()
    

      

    二. 面向对象的三大特性:封装/继承/多态

    封装: 

    将相关功能封装到一个类中:

    class Message:
    	def email(self):pass
    	def msg(self):pass
    	def wechat(self):pass
    

      将数据封装到一个对象中:

    class Person:
    	def __init__(self,name,age,gender):
    		self.name = name
    		self.age = age
    		self.gender = gender
    

      

    继承: 原则:现在自己类中找,没有就去父类找. 父类和子类是相对的.

    在方法中有self.f2时, 如果其他的类中也有f2()这个方法, 按照调用的对象的继承的顺序来看是调用哪个方法

    支持多继承(先找左/再找右), 多继承可以提高代码重用性 class Foo(Base, SuperBase): pass

    class SuperBase:
    		def f3(self):
    			print('f3')
    
    class Base(SuperBase):  # 父类,基类
    	def f2(self):
    		print('f2')
    
    class Foo(Base):        # 子类,派生类
    	def f1(self):
    		print('f1')
    
    obj = Foo()
    obj.f1()
    obj.f2()
    obj.f3()
    

      

    多态:

    多种形态或多种状态, 由于python原生支持多态,所以没有特殊性

  • 相关阅读:
    观察者与被观察者
    Gson和阿里的JSON简单对比
    银行卡输入特效 4个加一空格
    Android 点击空白处蕴藏键盘
    Android覆盖安装及常遇到的问题
    Android view中的requestLayout和invalidate方法
    医药行业GSP注册流程
    如何快速查询视图
    反写规则超额控制
    预算管理的操作步骤
  • 原文地址:https://www.cnblogs.com/NachoLau/p/9543910.html
Copyright © 2011-2022 走看看