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)
🙌