面向对象,类

Posted huxl1

tags:

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

面向对象编程

参考博客:www.cnblogs.com/Eva-J/p/7277026.html

编程:

  1面向流程编程:核心是过程,

  2面向对象编程:解决了程序的扩展性,对某一个对象单独的修改,会立刻反应到整个体系中,如游戏中的一个人的参数的特征和技能修改都很容易

  缺点: 可控性差。无法向面向过程的程序设计流水线式的可以很精准预测问题的处理流程和结果,

  3面向函数编程

技术图片
#以对象编程,先定义一个模子
#定义个人的函数
def People(name,blood,shashang):
    #定义人的拥有的属性
    people = 
        name:name,
        blood:blood,
        shashang:shashang
    
    return people

#定义一只狗的模子
def Dog(name,blood,shashang):
    #定义狗拥有的属性
     dog = 
        name:name,
        blood:blood,
        shashang:shashang
    
     return dog

#定义攻击
def people_dog(people,dog):
     dog[blood] -= people[shashang]
     print("%s被%s打了,掉血%s"% (dog[name],people[name],people[shashang]))

#定义一个人对象
alxe = People(小小,100,10)
dog = Dog(反帝,200,20)
ret = people_dog(alxe,dog)
print(ret)
人狗大战

 

初识类

1 定义类  

class  Person:          #定义一个类
  country = ‘china‘ # 这是定义了个类属性,是静态属性

   def __init__(self,#args) # 调用一个类时,就相当于调用了init
      self.name= args[0]   #对象属性
      self.hp = args[1]
      self.aggr = args[2]
   def work(self): #定义一个方法
      print(self.name)

#调用类

alex = Person(‘xiao‘,100,1) #alex 是定义的对象 alex 就等于 self 这过程叫实例化
print(alex.name)

对象做的事:alex

  1 对象可以查看属性,  self.name

  2也可以调用方法 alex.work()

  3 alex.name = ‘‘ 可以对属性进行修改,查看 , 删除

类名的做事  Person

  1 实例化

  2 调用,传递self参数

  3 调用类属性 People.china() 这是静态参数 这个类的属性只能看不能改

print(alex.__dict__)  查看内部包含的方法

技术图片
class People: #定义个人的类
    def __init__(self,name,blood,hai):
        self.name = name
        self.blood = blood
        self.hai = hai
    def gongji(self,d):
        d.blood -= self.hai
        if d.blood <= 0:
            print("%s死亡"% d.name)
        else:
            print("%s 被 %s 打了,掉血%s" %(d.name,self.name,self.hai))
class Dog:   #定义个狗的类
    def __init__(self,name,blood,hai):
        self.name = name
        self.blood = blood
        self.hai = hai
    def gongji(self,p):
        pass

alex = People(小小,200,10)    #调用人的类  alex  就是 slef
dog = Dog("反帝",100,20)        #调用狗类  创建一个对象 ,  这是实例化过程
alex.gongji(dog)
类---人狗大战

在什么时候考虑用类

  #当有几个函数,需要反复传入相同的参数的时候,就可以考虑面向对象
  #非常明显的处理一类事物,这些事物都具有相似的属性和功能

技术图片
#写一个圆 半径  求周长 2πr 和面积 πr**2
from  math  import  pi

class  Circle:
    def __init__(slef,r):
         self.r = r
     def  area(self):
          return  pi*(self.r**2)
     def perimeter(self):
           return  2*pi*self.r

c1 = Circle(5)
print(c1.area())
print(c1.perimeter())
圆周长半径计算
技术图片
#长方形周长(长加宽)*2   面积 长*class Chang:
    def __init__(self,p,r):
        self.p = p
        self.r = r
    def zhouchang(self):
         zc = (self.p + self.r) * 2
         return zc
    def mianji(self):
         mj = self.p * self.r
         return mj

chang = Chang(10,5)
# print(chang.p)
ret = chang.zhouchang()
print(ret)
#长方形周长(长加宽)*2 面积 长*宽

 

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

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

JAVA方法的定义

Java多线程与并发库高级应用-工具类介绍

Java多线程与并发库高级应用-工具类介绍