zoukankan      html  css  js  c++  java
  • 面向对象编程-类

    一.面向过程编程与面向对象编程

    1.面向过程编程:使用一系列的指令,一步一步地告诉计算机干什么。
    2.面向对象编程oop:利用类和对象来创建各种模型来实现对真实世界的描述。

    3.面向过程编程与oop的主要区别就是oop可以使程序更加容易扩展和更改
    二.基本概念
    1.类:是对一类拥有相同属性的的对象的抽象、蓝图、原型,在类中定义了这些对象都具备的属性、共同的方法。

    2.对象:一个对象即是一个类的实例化后的实例,一个类必须经过实例化后后方可在程序中调用。一个类可以实例化很多对象。每个对象亦可以有不同的属性。

    3.封装:在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法。

    4.继承:一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承。

    5.多态:一个接口,多种实现,指一个基类中派生出了不同的子类,且每个子类在继承了同样的方法的同时又对父类的方法做了不同的实现,这就是同一种事物表现出的多种形态。

    例子:
     1 class Role(object):#执行时之后就存在内存里
     2     def __init__(self,name,role,weapon,life_value=100,money=15000):
     3         #构造函数
     4         #作用:在实例化时做一些类的初始化工作,开辟一块内存
     5         self.name=name
     6         self.role=role
     7         self.weapon=weapon
     8         self.life_value=life_value
     9         self.money=money
    10 
    11     def shot(self):
    12         print('%s is shooting...' % self.name)
    13 
    14     def got_shot(self):
    15         print('%s is getting shot...' % self.name)
    16 
    17     def buy_gun(self,gun_name):
    18         print('%s has bought %s' % (self.name,gun_name))
    19 
    20 role1=Role('James','police','AWM') #实例化,生成一个对象
    21 #调用role的同时也将role1传进去了,类里面函数自带的self就是为了传实例名role1
    22 #实际上实例化的过程是是这样的:
    23 #role1=Role(role1,'James','police','AWM')
    24 #role1.name='James'
    25 #role1.role='Police'
    26 #role1.weapon='AWM'
    27 #role1.shot()#实际上是Role=shot(role1)
    28 #role1.got_shot()#实际上是Role=got_hot(role1)
    29 #role1.buy_gun()#实际上是Role=buy_gun(role1,gunnamme)
    30 
    31 #与调用函数不同
    32 #调用函数,-》执行,-》返回结果
    33 #role1=role.__init__() return 地址
    34 
    35 role1.shot()
    36 role1.got_shot()
    37 role1.buy_gun('AK47')

    结果:

  • 相关阅读:
    Linux压缩和解压缩命令(linux必学基础)
    Windows Server 2012 忘记登录密码怎么办?
    linux双网卡双网关设置
    date命令的帮助信息,使用date命令输出数字做为命名标题则不会有重复标题
    linux中history加入显示时间命令代码
    the MTS failed last time时的解决办法
    linux tar.gz zip 解压缩 压缩命令
    如果centos7添加新网卡,系统不识别的解决办法
    Linux常用命令英文全称与中文解释 (pwd、su、df、du等)
    使用动态规划算法解释硬币找零问题
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/10121863.html
Copyright © 2011-2022 走看看