Este desafio envolve a criação de um diagrama UML para modelar as classes e interfaces Java que representam as funcionalidades do iPhone em três papéis principais: Reprodutor Musical, Aparelho Telefônico e Navegador na Internet.
A classe iPhone representa o iPhone e possui três atributos que representam os papéis do iPhone: reprodutor, telefone e navegador. Abaixo, uma descrição dos métodos dessa classe:
A interface ReprodutorMusical define os métodos relacionados à funcionalidade de reprodução de música:
- tocar(): Inicia ou retoma a reprodução de música.
- pausar(): Pausa a reprodução de música.
- selecionarMusica(musica: String): Permite ao usuário selecionar uma música específica para ser reproduzida.
A interface AparelhoTelefonico define os métodos relacionados à funcionalidade telefônica:
- ligar(numero: String): Permite ao usuário ligar para um número especificado.
- atender(): Permite ao usuário atender uma chamada recebida.
- iniciarCorreioVoz(): Inicia a função de correio de voz.
A interface NavegadorInternet define os métodos relacionados à funcionalidade de navegação na Internet:
- exibirPagina(url: String): Exibe uma página da web com base em uma URL especificada.
- adicionarNovaAba(): Adiciona uma nova aba ao navegador para abrir e visualizar várias páginas da web simultaneamente.
- atualizarPagina(): Atualiza a página da web atualmente exibida no navegador.