ATPS - Programação Orientada a Objetos
Por: opa09 • 17/5/2016 • Trabalho acadêmico • 7.931 Palavras (32 Páginas) • 271 Visualizações
Universidade Anhanguera-Uniderp - Unidade Vila Mariana
Fabio Siqueira Lima 1299010519
Leandro Lopes de Araujo 1299010523
Douglas Felipe Santana 1299010516
Vitor Henrique Bonachela Martino 1299010535
Raphael I. de Oliveira 1299010529
ATPS – PROGRAMAÇÃO ORIENTADA A OBJETOS
Campinas/SP
09/2015
Índice
1 Apresentação 4
1.1 Orientação a objetos 4
1.2 Ferramentas 5
1.3.1 Java 5
1.3.2 Eclipse 5
2 Relatório 1 6
2.1 Descrição 6
2.2 Código fonte 6
2.2.1 App.java 6
2.2.2 Booking.java 7
2.2.3 DefaultPeriodCalculator.java 8
2.2.4 ReceiptPrinter 8
2.2.5 KeyboardReader.java 10
2.2.6 DefaultPeriodCalculatorTest 11
2.2.7 ReceiptPrinterTest 11
3 Relatório 2 13
3.1 Descrição 13
3.2 Código fonte 13
3.2.1 App.java 13
3.2.2 Booking.java 15
3.2.3 ReceiptPrinter 17
3.2.4 Room.java 17
3.2.5 RoomList.java 18
3.2.6 KeyboardReader.java 19
4 Relatório 3 21
4.1 Descrição 21
4.2 Código fonte 21
4.2.1 Room.java 21
4.2.2 StandardRoom.java 21
4.2.3 Cottage.java 22
4.2.4 RoomList.java 22
4.2.5 RoomType.java 24
5.2.6 Booking.java 24
4.2.7 App.java 26
5 Relatório 4 29
5.1 Descrição 29
5.2 Código fonte 29
5.2.1 App.java 29
5.2.2 RoomType.java 31
5.2.3 RoomList.java 32
5.2.4 FancyRoom.java 33
1 APRESENTAÇÃO
O objetivo desta atividade é apresentar uma aplicação escrita na linguagem Java que sirva para controlar as hospedagens de quartos da localidade turística de Maraú, situada no Estado da Bahia.
A aplicação funciona através do console, mas pode ser facilmente estendida para trabalhar através de uma interface web ou mesmo uma interface gráfica para desktop independente de sistema operacional.
Foram utilizados os princípios SOLID, disseminados por Robert “Uncle Bob” Martin, autor do obrigatório livro “Clean Code”, onde são listadas as boas práticas no uso de programação orientada a objetos.
Foram utilizadas as versões 1.8.0 do Java e 3.2.1 do Maven. O código não é compatível com versões anteriores do Java, tendo em vista o uso da nova API de datas para o cálculo de diárias.
1.1 Orientação a objetos
A Programação Orientada a Objetos é uma das mais populares formas de se abordar problemas computacionais e foi implementada pela primeira vez como a linguagem Simula, em 1967.
O paradigma da orientação a objetos estabelece que um problema pode ser resolvido fazendo uso de objetos especializados que trabalham em conjunto para chegar a uma solução.
Dentro do contexto do Java, um objeto é a instância de uma classe, que por sua vez é uma abstração de algo existente no mundo real.
1.3 Ferramentas
1.3.1 JAVA
Java é uma linguagem criada pela Sun, atualmente propriedade da Oracle, que se propôs a ser substituta do C++, além de ser multiplataforma.
Apesar de ter herdado vários dos problemas de design do C++, é muito utilizada em ambientes corporativos e para o ensino de Orientação a Objetos.
Para esta atividade está sendo utilizada a versão 1.8.0 do Java, conhecida como Java 8.
1.3.3 ECLIPSE
Ambiente de desenvolvimento gratuito para a linguagem Java. Apesar de ser mais avançado que seu concorrente NetBeans, hoje em dia tem perdido popularidade para o concorrente mais novo IntelliJ.
2 RELATÓRIO 1
2.1 Descrição
De acordo com o enunciado:
“Fazer uma classe para representar o aluguel de um quarto (dica: armazene as informações de data e horário de entrada e saída separadas, ou seja, um campo inteiro para o dia de entrada, um campo inteiro para o mês de entrada, um campo inteiro para o ano de entrada, um campo inteiro para o horário de entrada etc.). Esta classe deve conter métodos para calcular o número de diárias e o valor a ser pago pelo locatário.”
De acordo com o “Princípio da Responsabilidade Única”, tomamos a liberdade de não deixar as informações de hospedagem, cálculos de diárias e impressão de recibo na mesma classe.
Foi decidido de comum acordo que é uma boa prática observar que cada objeto deve ter apenas uma motivação e ser alterado em apenas um ponto.
Não concordamos também com a quebra das datas de entrada e saída em campos separados, uma vez que o Java provê tipos específicos para armazenamento de data (Date e Calendar), além de toda uma API para cálculos de datas, adicionada na versão 8 do Java.
...