Como vamos¶
- Abstracción de datos: Es una técnica que nos permite representar diferentes conjuntos usando estrategias de programacion, en este caso PF y P O.O
- Racional \(x \in \mathbb{Z} \wedge y \in \wedge{Z} \wedge y != 0, \frac{x}{y} \in \mathbb{Q}\), racional tiene dos números, TAD (Tipo abstracto dato) que permite representar los número racionales
- Hablamos la O.O orientada a objetos ofrece la encapsulación: podemos controlar como y de que forma se acceden los datos dentro una clase (private, public, protected)
- El this o ligadura dinámica es aquella que se crea cuando instanciamos una clase, esto permite saber cómo se instancio y su estado actual, esto es clave en la programación O.O
- Requiere establece una precondición de tal forma la clase no se instancia si esta no se cumple, assert permite instaciar pero falla si no se cumple
- Currificación:hacer métodos que solo acepten un argumento, hace que podamos representarlos en notación infija (binaria), dado que estos métodos tienen un segundo argumento implicito que es el this a la referencia a la misma clase
Es como si este fuera una función externa
class ClaseA(arg:Tipo) { def metodo(argM:Tipoa):TipoB = { ... } } val obj = new ClaseA(...) obj.metodo(arg) obj metodo arg - Esto nos permite abstraer la idea de un conjunto como los Racionales en un TAD de tal manera el programador lo utilice como si fuera una entidad sin necesidad de preocuparse por la implementación, puedo sumar dos racionales sin preocuparme en como se realiza.