Saltar al contenido principal
Curso/Interfaces y Clases/Modificadores de Acceso
Volver a Interfaces y Clases

Interfaces y Clases — Leccion 4

·15 min

Modificadores de Acceso

public, private, protected y su uso.

public (por defecto)

Accesible desde any lugar.

typescript
class Animal {
  nombre: string; // public por defecto
}

const a = new Animal();
a.nombre; // OK

private

Solo accesible dentro de la misma clase.

typescript
class Cuenta {
  private saldo: number;

  constructor(saldo: number) {
    this.saldo = saldo;
  }

  // Solo se puede acceder via métodos
  depositar(monto: number): void {
    this.saldo += monto; // OK: dentro de la clase
  }
}

const c = new Cuenta(100);
// c.saldo; // Error: private
c.depositar(50); // OK

protected

Accesible en la clase y subclases.

typescript
class Animal {
  protected energia: number = 100;

  comer(comida: number): void {
    this.energia += comida;
  }
}

class Perro extends Animal {
  ladrar(): void {
    this.energia -= 10; // OK: es protected
  }
}

const perro = new Perro();
// perro.energia; // Error: protected

Resumen

Modificador Clase Subclase Externo
public SI SI SI
private SI NO NO
protected SI SI NO

Parámetros de propiedades

typescript
class Usuario {
  constructor(
    public nombre: string,       // public
    private password: string,    // private
    protected rol: string        // protected
  ) {}
}

// Equivale a:
class Usuario {
  nombre: string;
  private password: string;
  protected rol: string;

  constructor(nombre: string, password: string, rol: string) {
    this.nombre = nombre;
    this.password = password;
    this.rol = rol;
  }
}

Ejercicio pratico

Crea una clase 'Banco' con cuenta privada, y métodos publicos para operar.

exercise.ts
Loading...
Resultado

Haz clic en "Ejecutar" para ver el resultado...

Curso de TypeScript — Aprende desde cero