/ OOP

포함(Composition)


객체지향 (포함 : Composition)

  • 한 클래스 내에서 다른 클래스의 특정한 기능만을 사용하려 할 때 사용함
class Attack:
	def __init__(self, damage, speed, crit):
    	self.damage = damage
   		self.speed = speed
    	self.crit = crit
        
    def atkscore(self):
    	return self.damage * self.speed * self.crit
    
    def maxrate(self):
        return self.crit * 100
    
    def sprate(self):
        return self.speed * self.crit
    
class Double_Attack:
    def __init__(self, damage, speed, crit):
    	self.damage = damage
   		self.speed = speed
    	self.crit = crit
        
    def atkscore(self):
    	return self.damage * self.speed * self.crit
    
    def maxrate(self):
        return self.crit/2 * 100
    
    def sprate(self):
        return self.speed * self.crit

Attack 클래스에서 self.damge * self.speed * self.crit과 self.crit * 100, self.speed * self.crit을 리턴

Double_Attack 클래스에서 self.damge * self.speed * self.crit과 self.crit/2 * 100, self.speed * self.crit을 리턴

class Double_Attack:
    def __init__(self, damage, speed, crit):
    	self.damage = damage
   		self.speed = speed
    	self.crit = crit
        self.attack = Attack(speed,crit)
        
    def atkscore(self):
    	return self.damage * self.speed * self.crit
    
    def maxrate(self):
        return self.crit/2 * 100
    
    def sprate(self):
        return self.attack.sprate()

Double_Attack에서 self.speed * self.crit 대신 Attack 클래스의 speed*crit을 리턴

-->