Class AsientoPremium

java.lang.Object
model.infraestructura.Asiento
model.infraestructura.AsientoPremium

public class AsientoPremium extends Asiento
Clase que representa un asiento Premium en la sala de cine. Hereda de Asiento y ofrece la maxima experiencia con butaca reclinable, calefaccion, la mayor distancia para piernas (150 cm) y ajuste de precio segun la distancia a la pantalla. El precio se calcula con un multiplicador base de 4.0x sobre el precio base, mas costo adicional por calefaccion ($2,000) y ajuste si esta muy cerca de la pantalla.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Constructor Details

    • AsientoPremium

      public AsientoPremium(String idAsiento, String fila, int numero, BigDecimal precioBase)
      Constructor para crear un asiento Premium. El tipo de asiento se establece automaticamente como "PREMIUM". Por defecto incluye butaca reclinable, calefaccion, distancia a pantalla de 5.5 metros y espacio para piernas de 150 cm (maximo).
      Parameters:
      idAsiento - Identificador unico del asiento
      fila - Letra de la fila del asiento
      numero - Numero del asiento dentro de la fila
      precioBase - Precio base del asiento sin extras
  • Method Details

    • calcularPrecioFinal

      public BigDecimal calcularPrecioFinal()
      Calcula el precio final del asiento Premium. Formula: (precioBase x 4.0) + ($2,000 si tiene calefaccion) Si la distancia a la pantalla es menor a 3 metros, se aplica un recargo del 30%.
      Specified by:
      calcularPrecioFinal in class Asiento
      Returns:
      Precio final del asiento Premium
    • isButacaReclinable

      public boolean isButacaReclinable()
      Returns:
      true si la butaca es reclinable, false en caso contrario
    • setButacaReclinable

      public void setButacaReclinable(boolean butacaReclinable)
      Parameters:
      butacaReclinable - Nuevo estado de butaca reclinable
    • isCalefaccion

      public boolean isCalefaccion()
      Returns:
      true si tiene calefaccion, false en caso contrario
    • setCalefaccion

      public void setCalefaccion(boolean calefaccion)
      Parameters:
      calefaccion - Nuevo estado de calefaccion
    • getDistanciaPantalla

      public BigDecimal getDistanciaPantalla()
      Returns:
      Distancia en metros a la pantalla
    • setDistanciaPantalla

      public void setDistanciaPantalla(BigDecimal distanciaPantalla)
      Parameters:
      distanciaPantalla - Nueva distancia a la pantalla