面向对象初识

Posted 2018-01-30

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象初识相关的知识,希望对你有一定的参考价值。

面向对象
面向过程核心:过程(即流水线思维)
优点:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可
缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身
应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等
核心:对象(上帝思维)
优缺点
优:可扩展性好,易于理解代码逻辑
缺:可控性差
使用场景:需求经常变化的软件
用户层
互联网应用
企业内部应用软件
游戏
名词

具有相同特征的一类事物
对象/实例
实例
实例化
类——>对象的过程
类的相关知识
作用:
属性引用
类名.属性
实例化
对象名= 类名(参数)
对象
查看属性:对象.属性名
调用方法:对象.方法名()
关于self:在实例化时自动将对象/实例本身传给__init__的第一个参数,你也可以给他起个别的名字,但是正常人都不会这么做
查看类属性:
1、dir(类名)
结果是一个字典
类名.__dict__
对象的相关知识
对象是关于类而实际存在的一个例子
对象/实例只有一种作用:属性引用
对象之间的交互

class Person:  # 定义一个人类
    role = ‘person‘  # 人的角色属性都是人

    def __init__(self, name, aggressivity, life_value):
        self.name = name  # 每一个角色都有自己的昵称;
        self.aggressivity = aggressivity  # 每一个角色都有自己的攻击力;
        self.life_value = life_value  # 每一个角色都有自己的生命值;

    def attack(self,dog):  
        # 人可以攻击狗,这里的狗也是一个对象。
        # 人攻击狗,那么狗的生命值就会根据人的攻击力而下降
        dog.life_value -= self.aggressivit
class Dog:  # 定义一个狗类
    role = ‘dog‘  # 狗的角色属性都是狗

    def __init__(self, name, breed, aggressivity, life_value):
        self.name = name  # 每一只狗都有自己的昵称;
        self.breed = breed  # 每一只狗都有自己的品种;
        self.aggressivity = aggressivity  # 每一只狗都有自己的攻击力;
        self.life_value = life_value  # 每一只狗都有自己的生命值;

    def bite(self,people):
        # 狗可以咬人,这里的狗也是一个对象。
        # 狗咬人,那么人的生命值就会根据狗的攻击力而下降
     dog.life_value -= self.aggressivit

以上是关于面向对象初识的主要内容,如果未能解决你的问题,请参考以下文章

Python -- 面向对象:初识

面向对象初识

初识面向对象

VSCode自定义代码片段——JS中的面向对象编程

面向对象初识

VSCode自定义代码片段9——JS中的面向对象编程