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

    结果:

  • 相关阅读:
    【NOIP2015四校联训Day7】 题 题解(Tarjan缩点+DFS)
    【NOIP2013】火柴排队 题解(贪心+归并排序)
    【AHOI2009】中国象棋 题解(线性DP+数学)
    【HDU5869】 Different GCD Subarray Query 题解 (线段树维护区间GCD)
    【FZYZOJ】愚人节礼物 题解(状压DP)
    JavaSE 基础 第12节 基本算术运算符与模运算符
    JavaSE 基础 第11节 深入理解字符串
    JavaSE 基础 第09节 赋值与初始化
    JavaSE 基础 第08节 数据类型转换
    JavaSE 基础 第07节 变量和常量
  • 原文地址:https://www.cnblogs.com/BIT-taozhen/p/10121863.html
Copyright © 2011-2022 走看看