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')

    结果:

  • 相关阅读:
    IL指令列表
    [译].Net中的内存-什么分配在了哪里
    C#中的可空类型
    深入C#并行编程(2) -- 使用线程
    C#自动内存分配
    在C#中使用Json.Net进行序列化和反序列化及定制化
    ASP.NET获取客户端、服务器端基础信息
    MongoDB随笔
    MongoDB.Driver 管道 Aggregate
    MongoDB centos安装问题 error while loading shared libraries: libnetsnmpmibs.so.31
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/10121863.html
Copyright © 2011-2022 走看看