Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Lógica de Objetos

Estou aprendendo ainda a lógica da programação em objetos, e como iniciante que está quebrando a cabeça gostaria de sugerir uma proposta para evitar confusões.

A constante de referencia do objeto Meal é "brownie" e na constante "item1" o nome dado é também brownie.

Quando ao final realiza a soma de calorias de "brownie" eu demorei a perceber que estava fazendo o cálculo da constante brownie, especialmente porque esta constate foi atribuida logo no começo da explicação, e o nome dado como parametro para o "item1" foi dado durante a mesma explicação (última referencia de brownie que eu tinha era do nome dado).

Como a lógica de objetos, como estou percebendo, depende de uma visualização abstrata, situações assim complicam um bocado para nós. Obrigado.

2 respostas

Segue abaixo um exemplo de código que entendo ser mais fácil entendimento. Encaminho não como dúvida, mas ajuda, por entender que depois de gastar um bom tempo pra entender o raciocínio, reconstrui o código que entendo ser mais didático.

import UIKit

class Meal {
    var happiness:Int
    var name:String
    var ingredients = Array<Ingredient>()

    init(name:String, happiness:Int){
        self.name = name
        self.happiness = happiness
    }

    func allCalories() -> Double {
        var total = 0.0
        for i in ingredients {
            total += i.calories
        }
        return total
    }
}

class Ingredient {
    var name:String
    var calories:Double

    init(name:String, calories:Double){
        self.name = name
        self.calories = calories
    }
}


// Instanciando ingredientes -- class Ingredient --
let ingredient1 = Ingredient(name: "uva", calories: 55.3)
let ingredient2 = Ingredient(name: "água", calories: 0.5)
let ingredient3 = Ingredient(name: "açucar", calories: 93)

//Instanciando refeição -- class Meal --
let sucoUva = Meal(name: "Suco de Uva", happiness: 4)

//Adicionando ao Meal os ingredientes, um a um.
sucoUva.ingredients.append(ingredient1)
sucoUva.ingredients.append(ingredient2)
sucoUva.ingredients.append(ingredient3)

print(sucoUva.allCalories())
solução!

Oi André tudo bem ?

Entendi sua forma de pensar, dei uma olhadinha no curso e vi que está semantico também.

Agradecemos o feedback, o único problema de não podermos colocar ele em prática é que o texto é a transcrição do video, logo teríamos que refazer o video com esse exemplo.

Mas vou deixar pinado aqui para poderem olhar essa sua solução elegante :D

Abraços e bons estudos !!