🧱 ¿Qué es una clase Num?
Una clase Num (o Numero) no es parte de Angular ni de TypeScript por defecto, pero tú puedes crearla como una estructura personalizada para manejar números con ciertas operaciones u objetos más estructurados.
Se utiliza cuando quieres encapsular propiedades, validaciones, y métodos matemáticos que trabajan alrededor de un número.
🔨 Ejemplo base de una clase Num
class Num {
private valor: number;
constructor(valor: number) {
this.valor = valor;
}
getValue(): number {
return this.valor;
}
isEven(): boolean {
return this.valor % 2 === 0;
}
double(): number {
return this.valor * 2;
}
toString(): string {
return `📦 Valor actual: ${this.valor}`;
}
}
✅ Uso de la clase Num
const miNumero = new Num(6);
console.log(miNumero.getValue()); // 6
console.log("¿Es par?", miNumero.isEven()); // true
console.log("Doble:", miNumero.double()); // 12
console.log(miNumero.toString()); // 📦 Valor actual: 6
🎯 ¿Para qué sirve crear una clase Num?
- ✅ Para encapsular reglas o validaciones personalizadas
- 🧪 Para tener lógica reutilizable sobre números (sumar, restar, convertir, validar)
- 📦 Para trabajar en proyectos grandes donde un simple
numberya no es suficiente - 🧠 Para aprender los principios POO (Programación Orientada a Objetos)
💡 Ejemplo avanzado: clase Num con operaciones matemáticas
class Num {
constructor(private valor: number) {}
suma(n: number): Num {
return new Num(this.valor + n);
}
resta(n: number): Num {
return new Num(this.valor - n);
}
multiplica(n: number): Num {
return new Num(this.valor * n);
}
divide(n: number): Num {
if (n === 0) throw new Error("❌ División por cero no permitida");
return new Num(this.valor / n);
}
esPositivo(): boolean {
return this.valor > 0;
}
imprimir(): void {
console.log(`📦 Valor: ${this.valor}`);
}
}
🧪 Uso:
const numero = new Num(10);
numero.imprimir(); // 📦 Valor: 10
const resultado = numero.suma(5).multiplica(2); // (10 + 5) * 2 = 30
resultado.imprimir(); // 📦 Valor: 30
console.log("¿Es positivo?", resultado.esPositivo()); // true
🧙♂️ Ventajas de usar esta clase Num
| Ventaja | ¿Por qué importa? |
|---|---|
| Encapsulamiento | Protege y controla el acceso al valor |
| Métodos encadenables | Permite operaciones más limpias y elegantes |
| Validación centralizada | Puedes agregar reglas como "no dividir entre 0" |
| Reutilización | Puedes usar Num en varios proyectos o módulos |
📌 Detalles técnicos
- ✅ Puedes usar
privatepara evitar que otros modifiquen el número directamente - ✅ Puedes extender
Numpara crear por ejemploPorcentaje extends Num - ✅ Puedes sobreescribir el método
toString()para imprimir bonito
🧁 Postre final: Mini práctica para ti
ts
// Crea una clase Num que tenga:
// - una propiedad valor (número)
// - un método cuadrado()
// - un método raiz()
// - un método negativo()
// - un método mostrar()
---
Top comments (0)