> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/exercicios-java/ud3-exercicios/poo-getters-and-setters-e-tostring.md).

# POO: getters and setters e toString()

1. Escribe unha clase Videoxogo que vai a contar con un titulo, un xénero, unha plataforma de xogo, un precio e se é económico ou no. Pidese:
   1. Implementa un constructor vacío, un constructor con titulo e xénero e un constructor con titulo, xénero, plataforma e prezo
   2. Implementa os métodos getters and setters para os atributos da clase titulo, xénero, plataforma e prezo. Cando se estableza o prezo, se e menor de 30 euros, o atributo económico será certo, en outro caso, falso.
   3. Implementa un método toString() que Imprime por pantalla toda a información do videoxogo.
   4. Crea una nova clase App que conteña un main. Inicializa nel tres videoxogos diferentes, un con cada constructor. Os parámetros faltantes para os videoxogos instanciados cos dous primeiros constructures, estableceranse mediante setters. Mostra a información dos tres videoxogos por pantalla
2. Escribe unha clase ContaBancaria que vai a contar con un titular, un numero de conta, un saldo e un tipo de conta (Aforro ou corrente) e número de movementos. Pidese:
   1. Implementa un constructir vacío, un constructor con titular e número de conta, e un constructor cos catro atributos
   2. Implementa os gettes e setters para os atributos da clase conta bancaria
   3. Implementa os seguintes métodos:
      1. depositar(cantidade): Engade a cantidade ao saldo, incrementa o contador de movementos
      2. retirar(cantidade): Retira a cantidade do saldo, incrementa o contador de movementos
      3. aplicarComisionMensual(): Aplica as seguintes comisions (aplica unicamente unha de elas en cada caso):
         1. Conta corrente: 5 euros se ten menos de 500 euros de saldo
         2. Conta Aforro: 1 euro se ten menos de 100 euros
         3. Saldo negativo: 10 euros
      4. calculaInteres(aportacion): Calcula o interés que xenera a conta a partir dunha aportación: engade aportanción + 1% de interse
      5. simularPlandeAforro(aportación, numero de meses): Mostra por pantalla a evolución do aforro, a partir da función de calculaInteres.
      6. toString(): Devolve por pantalla os datos da conta
   4. Crea una nova clase App que conteña un main. Inicializa nel tres contas diferentes, un con cada constructor. Os parámetros faltantes para as contas instanciados cos dous primeiros constructures, estableceranse mediante setters. Mostra a información dos tres contas por pantalla. Para unha de elas proba os metodos de depositar, retirar e aplicar comisión, a continución mostra a súa información por pantalla. Simula o plan de aforro a 10 meses
3. Escribe unha clase Libro que vai contar con un título, un autor, un número de páxinas, un xénero literario e se está dispoñible ou non para préstamo. Pídese:
   1. Implementa tres constructores: Un constructor vacío, un constructor con título e autor e un constructor con título, autor, número de páxinas e xénero literario.
   2. Implementa os métodos getters e setters para os atributos da clase título, autor, número de páxinas e xénero literario. Cando se estableza o número de páxinas, se é maior de 500 páxinas, o atributo dispoñible será **falso** (consideramos libros moi grosos como non dispoñibles para préstamo), en caso contrario, **verdadeeiro**.
   3. **I**mplementa os seguintes métodos:
      * `prestar()`: Cambia o estado de dispoñible a falso
      * `devolver()`: Cambia o estado de dispoñible a verdadeiro
      * `calcularTempoLectura()`: Calcula o tempo estimado de lectura baseándose en que unha persoa lee 50 páxinas por hora
      * `éColeccionable()`: Devolve verdadeiro se o xénero é "Fantasia" ou "Ciencia Ficción" e ten máis de 300 páxinas
      * `toString()`: Devolve toda a información do libro
   4. Crea unha nova clase App que conteña un main. Inicializa nel tres libros diferentes, un con cada constructor. Os parámetros faltantes para os libros instanciados cos dous primeiros constructores, estableceranse mediante setters. Mostra a información dos tres libros por pantalla. Para un deles proba os métodos de prestar, devolver e calcular tempo de lectura, e mostra a súa información final por pantalla.
4. Escribe unha clase **SerieTV** que xestiona información sobre series televisivas. A clase debe conter os seguintes atributos: **titulo, xénero** (Drama, Comedia, Ciencia Ficción, etc.), **tempadas, capítulosPorTempada, duracionCapítulo** (en minutos), **inalizada** (booleano que indica se a serie xa rematou). Pidese:
   1. **Implementa tres constructores**: Constructor vacío, Constructor con título e xénero e Constructor con título, xénero, tempadas, capítulosPorTempada e duracionCapítulo
   2. **Implementa os getters e setters** para todos os atributos. No setter de `tempadas`, se o número de tempadas é maior que 10, automaticamente establécese o atributo `finalizada` a **true** (consideramos que series con moitas tempadas probablemente xa remataron).
   3. **Implementa os seguintes métodos**:
      * `calcularDuracionTotal()`: Calcula a duración total da serie en horas (tempadas × capítulosPorTempada × duracionCapítulo / 60)
      * `podeMaratonarse()`: Devolve **true** se a duración total é menor de 48 horas (considerámola "maratonable")
      * `categoriaPorDuracion()`: Devolve un String indicando:
        * "Curta" se a duración total é < 24 horas
        * "Media" se está entre 24 e 72 horas
        * "Longa" se é > 72 horas
      * `éCulto()`: Devolve **true** se o xénero é "Ciencia Ficción" ou "Fantasia" e ten máis de 3 tempadas
      * `toString()`: Devolve toda a información da serie de forma formateada
   4. **Crea unha clase App** que conteña o método main. Nel: Crea tres series diferentes, unha con cada constructor. Para as series creadas cos dous primeiros constructores, completa a información usando setters. Mostra a información das tres series por pantalla e para unha das series, proba os métodos `calcularDuracionTotal()`, `podeMaratonarse()` e `categoriaPorDuracion().` Mostra a información final desa serie cos resultados dos cálculos


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://educacion.gitbook.io/programacion/exercicios-java/ud3-exercicios/poo-getters-and-setters-e-tostring.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
