Requerimientos:
- Java o Python.
- Bucles y condicionales.
- Funciones.
¿Qué es la POO?
La programación orientada a objetos no es mas que la capacidad de transformar objetos (como los de la vida cotidiana) a código.
Ejemplo
Para definir una clase tenemos que tener en cuenta un par de cosas:
- Nombre
- Propiedades (Características o estados)
- Métodos (¿Qué puede hacer?)
El nombre de nuestro objeto es: Televisor.
Sus propiedades son: volumen y canal.
Sus métodos son: cambiar de canal, obtener canal actual, subir volumen, bajar volumen y obtener volumen.
Una vez definido nuestro objeto Manos a la obra (Trabajaremos con Java 8 y Python 3.8 por la facilidad para hacer CLIs) 🚀🚀
Python
class Televisor: def __init__(self, volumen: int, canal: int): self.volumen = volumen self.canal = canal def subir_volumen(self): self.volumen += 1 def bajar_volumen(self): self.volumen -= 1 def obtener_volumen(self): return self.volumen def cambiar_canal(self, canal: int): self.canal = canal def obtener_canal(self) -> int: return self.canal
Java
package main; public class Television { private int volumen; private int canal; public Television(int volumen, int canal){ this.volumen = volumen; this.canal = canal; } public void subir_volumen(){ this.volumen++; } public void bajar_volumen(){ this.volumen--; } public int obtener_volumen(){ return this.canal; } public void cambiar_canal(int canal){ this.canal = canal; } public int obtener_canal(){ return this.canal; } }
En hora buena!
Acabamos de crear nuestro primer objeto! Podríamos ser rigurosos con validaciones o con métodos, pero esto es solo un primer vistazo. Ahora te invito a jugar con el programa de aquí abajo, cambia los valores, mejóralo tanto como quieras. Cuéntame tu experiencia o deja tus preguntas en comentarios. Suerte Devs! 👩💻👨💻
Python
class Televisor: MAX_VOLUMEN = 30 MAX_CANAL = 30 def __init__(self, volumen: int, canal: int): self.volumen = volumen self.canal = canal self.io = False def IO(self): self.io = not self.io def obtener_estado(self) -> str: if self.io: return 'Encendido' else: return 'Apagado' def subir_volumen(self): if not self.io: print('[Televisor Apagado]') return elif self.volumen == self.MAX_VOLUMEN: print('[Max volumen]') return self.volumen += 1 def bajar_volumen(self): if not self.io: print('[Televisor Apagado]') return elif self.volumen == 0: print('[Min volumen]') return self.volumen -= 1 def obtener_volumen(self): if not self.io: print('[Televisor Apagado]') return return self.volumen def cambiar_canal(self, canal: int): if not self.io: print('[Televisor Apagado]') return elif canal > self.MAX_CANAL: print('[Max Canal]', self.MAX_CANAL) return elif canal < 1: print('[Min Canal]', 1) return self.canal = canal def obtener_canal(self) -> int: if not self.io: print('[Televisor Apagado]') return return self.canal if __name__ == "__main__": print('5 para apagar o encender. Usa las teclas 8 y 2 para volumen. 4 y 6 para cambiar de canal. 7 ir a canal.') print('Salir: ctrl + c') televisor = Televisor(0, 1) while True: key = input() if key == '5': televisor.IO() print(televisor.obtener_estado()) elif key == '7': try: canal = int(input()) televisor.cambiar_canal(canal) print('Canal:', televisor.obtener_canal()) except: print('Canal no valido') elif key == '8': televisor.subir_volumen() print('Volumen:', televisor.obtener_volumen()) elif key == '2': televisor.bajar_volumen() print('Volumen:', televisor.obtener_volumen()) elif key == '4': televisor.cambiar_canal(televisor.obtener_canal() - 1) print('Canal:', televisor.obtener_canal()) elif key == '6': televisor.cambiar_canal(televisor.obtener_canal() + 1) print('Canal:', televisor.obtener_canal()) print('------------------------------------------------------')
Java
package main; import java.util.Scanner; /** * * @author USHIERU */ public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Television televisor = new Television(0, 1); System.out.println("5 para apagar o encender. Usa las teclas 8 y 2 para volumen. 4 y 6 para cambiar de canal. 7 ir a canal."); while (true) { String comando = scanner.next(); switch (comando) { case "5": televisor.IO(); System.out.println(televisor.obtenerEstado()); break; case "7": try { int canal = scanner.nextInt(); televisor.cambiarCanal(canal); System.out.println("Canal: " + televisor.obtenerCanal()); } catch (Exception e) { System.out.println("Valor invalido"); } break; case "8": televisor.subirVolumen(); System.out.println("Volumen: " + televisor.obtenerVolumen()); break; case "2": televisor.bajarVolumen(); System.out.println("Volument: " + televisor.obtenerVolumen()); break; case "4": televisor.cambiarCanal(televisor.obtenerCanal() - 1); System.out.println("Canal: " + televisor.obtenerCanal()); break; case "6": televisor.cambiarCanal(televisor.obtenerCanal() + 1); System.out.println("Canal: " + televisor.obtenerCanal()); break; } System.out.println("------------------------------------------------------"); } } } class Television { private int volumen; private int canal; private boolean io; private final int MAX_VOLUMEN = 50; private final int MAX_CANAL = 30; public Television(int volumen, int canal) { this.volumen = volumen; this.canal = canal; this.io = false; } public void IO() { this.io = !this.io; } public String obtenerEstado() { if (this.io) { return "Encendido"; } else { return "Apagado"; } } public void subirVolumen() { if (!this.io) { System.out.println("[Televisor Apagado]"); return; } else if (this.volumen == this.MAX_VOLUMEN) { System.out.println("[Max Volumen]"); return; } this.volumen++; } public void bajarVolumen() { if (!this.io) { System.out.println("[Televisor Apagado]"); return; } else if (this.volumen == 0) { System.out.println("[Min Volumen]"); return; } this.volumen--; } public int obtenerVolumen() { if (!this.io) { System.out.println("[Televisor Apagado]"); return 0; } return this.volumen; } public void cambiarCanal(int canal) { if (!this.io) { System.out.println("[Televisor Apagado]"); return; } else if (canal > this.MAX_CANAL) { System.out.println("[Max Canal " + this.MAX_CANAL + "]"); return; } this.canal = canal; } public int obtenerCanal() { if (!this.io) { System.out.println("[Televisor Apagado]"); return 0; } return this.canal; } }
Top comments (1)
🙌