JavaScriptLección 13 de 16

Clases

Una clase es un plano: con new construyes a partir de ella todos los objetos parecidos que quieras. Cada cuenta tiene su titular y su saldo, y las reglas para ingresar y retirar son comunes.

Lo esencial

  • class Name { constructor(…) { this.x = … } } es el plano con las propiedades iniciales
  • new Name(…) crea un objeto, y cada uno recibe los métodos de la clase
  • get balance() { … } es un getter: se lee como una propiedad, sin paréntesis
  • #balance es un campo privado: fuera de la clase no se puede leer ni cambiar
  • class B extends A hereda; super(…) llama al constructor del padre

Ejemplo

class Point {  constructor(x, y) {    this.x = x;    this.y = y;  }   move(dx, dy) {    this.x += dx;    this.y += dy;  }   toString() {    return `(${this.x}, ${this.y})`;  }} class Point3D extends Point {  constructor(x, y, z) {    super(x, y);    this.z = z;  }   toString() {    return `(${this.x}, ${this.y}, ${this.z})`;  }} const p = new Point(1, 2);p.move(3, 4);console.log(`${p}`);console.log(`${new Point3D(1, 2, 3)}`);

Point3D heredó move de Point y reemplazó toString. super(x, y) pasó x e y al constructor de Point. Dentro de una plantilla, un objeto se convierte en texto con su toString.

Tarea

Cómo usar el editor⌘ Enter o Ctrl Enter ejecuta el código, ⇧ ⌘ Enter comprueba la tarea.Tab y Mayús Tab sangran la línea o la selección; Esc y luego Tab sale del editor.La comprobación compara lo que imprimió el programa con la tarea; los espacios al final de línea no cuentan.Tras dos comprobaciones fallidas puedes ver la solución. Tu código se guarda en este navegador.

Completa el pequeño banco: deposit suma a #balance y withdraw retira dinero o, si no alcanza, imprime Not enough money. En SavingsAccount añade addInterest(percent), que ingresa ese porcentaje del saldo. Salida: Not enough money, Nora: 165 y true.

Salida

Aquí aparecerá lo que imprima el programa.