O desafio original está abaixo, mas me propus a melhorar a complexidade visando um maior aprendizado desafiando meus limites. Tentarei as seguintes implementações, além das pedidas no desafio:
1 - Quando o usuário escolher o aplicativo "Navegador" no terminal, o terminal irá abrir realmente o aplicativo caso tenha ele no computador dele.
2 - Quando o usuário escolher o aplicativo "Spotify" no terminal, o terminal irá abrir o Spotify e não a mensagem : "Tocando música" como proposto pelo desafio original.
3 - Quando o usuário escolher o aplicativo "YouTube" no terminal, o terminal irá abrir o "YouTube" ou "whatsapp", ou qualquer um dos aplicativos que tenha opção para o usuário.
4 - Quando o usuário escolher o aplicativo "Telefone" no terminal, neste cenário seguirei o desafio original me mantendo ao basico, apenas incrementando algumas funções a mais, nada muito significativo. NO FIM MESMO DO TERMINAL, FAREMOS TUDO QUE O IPHONE FAZ ATRAVEZ DE OUTROS APLICATIVOS, COMO LIGAR PELO WHATSAPP.
5 - Por fim, acrescentei uma interface grafica simples para interação com o usuário com apenas um cclique para abir seu app. Basta executar o IphoneGUI.java agora e clique na sua escolha...
- App (classe abstrata)
- Spotify (subclasse de App)
- GoogleChrome (subclasse de App)
- Telefone (subclasse de App)
- Facebook (subclasse de App)
- WhatsApp (subclasse de App)
- YouTube (subclasse de App)
- Calendario (subclasse de App)
- Iphone (classe principal para interação com o usuário)
- IphoneGUI (interface gráfica simples)
Menu do Iphone: Escolha um aplicativo para abrir:
- Spotify
- Google Chrome
- telefone
- WhatsApp (onde também pode fazer ligações)
- YouTube
- Calendário
- Sair Digite o nº do app para abrí-lo:
DESAFIO ORIGINAL.
Com base no vídeo de lançamento do iPhone de 2007 (link abaixo), você deve elaborar a diagramação das classes e interfaces utilizando uma ferramenta UML de sua preferência. Em seguida, implemente as classes e interfaces no formato de arquivos .java
.
- Minutos relevantes: 00:15 até 00:55
- Reprodutor Musical
- Métodos:
tocar()
,pausar()
,selecionarMusica(String musica)
- Métodos:
- Aparelho Telefônico
- Métodos:
ligar(String numero)
,atender()
,iniciarCorreioVoz()
- Métodos:
- Navegador na Internet
- Métodos:
exibirPagina(String url)
,adicionarNovaAba()
,atualizarPagina()
- Métodos:
- Criar um diagrama UML que represente as funcionalidades descritas acima.
- Implementar as classes e interfaces correspondentes em Java (Opcional).
classDiagram
class ReprodutorMusical {
+exemploMetodo1()
+exemploMetodo2(String exemplo)
}
class AparelhoTelefonico {
+exemploMetodo1()
+exemploMetodo2(String exemplo)
}
class NavegadorInternet {
+exemploMetodo1()
+exemploMetodo2(String exemplo)
}
class iPhone {
}
iPhone --> ReprodutorMusical
iPhone --> AparelhoTelefonico
iPhone --> NavegadorInternet
- Assista ao vídeo do lançamento do iPhone para entender as funcionalidades principais.
- Utilize uma ferramenta UML de sua preferência para criar o diagrama das classes e interfaces. Você pode utilizar o modelo acima (criado na sintaxe Mermaid), uma alternativa open-source e compatível com arquivos Markdown como este.
- Opcionalmente, caso esteja cheio(a) de confiança, pode implementar as classes Java representadas em seu diagrama UML.
- Submeta seu repositório GitHub conforme as orientações da plataforma DIO. Por exemplo:
https://github.com/glysns/trilha-java-basico/desafios/poo/README.md