Prévia do material em texto
<p>Análise e Desenvolvimento de Sistemas</p><p>Educação à Distância</p><p>2</p><p>ATIVIDADE AVALIATIVA 2 – PROGRAMAÇÃO ORIENTADA A OBJETOS 1</p><p>MARTA NASCIMENTO MENEZES</p><p>Matrícula: 2230102861</p><p>ATIVIDADE AVALIATIVA 2 – PROGRAMAÇÃO ORIENTADA A OBJETOS 1</p><p>Atividade Avaliativa 2 – A atividade consiste no desenvolvimento de projeto de aplicação com uso de vetores de objetos com tratamento de exceções.</p><p>Prof.º Luciano de Pinna Vieira</p><p>Índice</p><p>Enunciado:..................................................................................................4</p><p>Diagrama:....................................................................................................6</p><p>Super Classe:..............................................................................................7</p><p>Classe Navio:..............................................................................................9</p><p>Classe Avião:..............................................................................................11</p><p>Classe Main:................................................................................................13</p><p>Resultado:...................................................................................................14</p><p>Conclusão:..................................................................................................15</p><p>Referências:................................................................................................16</p><p>Desenvolvimento de projeto de aplicação com uso de vetores de objetos com tratamento de exceções</p><p>O uso de vetores e matrizes de objetos pode facilitar muito o desenvolvimento de determinados projetos, facilitando o desenvolvimento, diminuindo a complexidade e favorecendo a manutenção do sistema.</p><p>Dadas as classes a seguir, crie uma superclasse para atender às necessidades das subclasses, com todas as funcionalidades comuns às classes similares. Crie também uma aplicação que gere, por meio de um vetor único com dez objetos de cada tipo, utilizando sempre o construtor vazio. Utilize o tratamento de exceções para proteger a aplicação contra possíveis entradas de dados inválida com os métodos da classe Scanner.</p><p>Classes:</p><p>Classe</p><p>Atributos</p><p>Métodos</p><p>Aviao</p><p>Prefixo : Texto</p><p>CapacidadeTanque : inteiro</p><p>NumeroPassageiros : inteiro</p><p>Preco : real</p><p>DataRevisao : Texto</p><p>· Acesso (setters e getters).</p><p>· Construtores: pelo menos dois métodos construtores.</p><p>· imprimir(): exibe os dados do objeto.</p><p>. entrada(): realiza a entrada de dados pelo teclado</p><p>· reajustarPreco(percentual : real): reajusta o preço do avião, alterando o valor do atributo de acordo com o percentual passado como parâmetro.</p><p>Navio</p><p>Nome : Texto</p><p>CapacidadeTanque : inteiro</p><p>NumeroPassageiros : inteiro</p><p>NumeroTripulantes : inteiro</p><p>Preco : real</p><p>DataLancamento : Texto</p><p>· Acesso (setters e getters).</p><p>· Construtores: pelo menos cinco métodos construtores.</p><p>· imprimir(): exibe os dados do objeto.</p><p>· entrada(): realiza a entrada de dados pelo teclado</p><p>· passageirosPorTripulantes(): retorna a divisão do número de passageiros pelo número de tripulantes. Os valores usados nesse método são atributos, por isso não precisam ser passados como parâmetros.</p><p>Observações:</p><p>1. A superclasse deverá possuir dois métodos construtores também.</p><p>2. Apenas atributos com o mesmo nome e do mesmo tipo podem ser considerados similares para a herança.</p><p>3. Os atributos devem ser protegidos contra acesso direto.</p><p>Monte o diagrama de hierarquia das classes e defina onde ficará cada atributo após a aplicação do conceito de herança. Após a determinação da hierarquia, desenvolva separadamente as classes (incluindo a classe de aplicação). O projeto deve então ser documentado em um arquivo do Word e postado no ambiente de avaliação.</p><p>Diagrama:</p><p>SuperClasse:</p><p>package trabalhojava;</p><p>import java.util.Scanner;</p><p>/**</p><p>*</p><p>* @author marta</p><p>*/</p><p>public class SuperClasse {</p><p>private int capacidadetanque;</p><p>private int numeropassageiros;</p><p>private float valor;</p><p>Scanner scan = new Scanner(System.in);</p><p>public void setcapacidadeTanque(int capactanq) {</p><p>this.capacidadetanque = capactanq;</p><p>}</p><p>public int getcapacidadeTanque(){</p><p>return this.capacidadetanque;</p><p>}</p><p>public void setnumeroPassageiros(int numpass) {</p><p>this.numeropassageiros = numpass;</p><p>}</p><p>public int getnumeroPassageiros() {</p><p>return this.numeropassageiros;</p><p>}</p><p>public void setvalor (float valor) {</p><p>this.valor = valor;</p><p>}</p><p>public float getvalor() {</p><p>return this.valor;</p><p>}</p><p>public void EntradaCapacidadeTanque() {</p><p>System.out.println("Capacidade do tanque(numeros):");</p><p>setcapacidadeTanque(Integer.parseInt(scan.nextLine()));</p><p>}</p><p>public void EntradanumeroPassageiros() {</p><p>System.out.print("Numero de Passageiros: ");</p><p>setnumeroPassageiros(Integer.parseInt(scan.nextLine()));</p><p>}</p><p>public void EntradaPreco() {</p><p>System.out.print("Valor: ");</p><p>setvalor(Float.parseFloat(scan.nextLine()));</p><p>}</p><p>public void Cadastrar() {</p><p>EntradaCapacidadeTanque();</p><p>EntradanumeroPassageiros();</p><p>EntradaPreco();</p><p>}</p><p>public void Imprimir() {</p><p>System.out.print("Capacidade do tanque(numeros): " + getcapacidadeTanque() + "\n");</p><p>System.out.print("NumeroPassageiros: " + getnumeroPassageiros() + "\n");</p><p>System.out.print("Valor: " + getvalor() + "\n");</p><p>}</p><p>}</p><p>Classe Navio:</p><p>package trabalhojava;</p><p>import java.util.Scanner;</p><p>/**</p><p>*</p><p>* @author marta</p><p>*/</p><p>public class ClasseNavio extends SuperClasse {</p><p>private String nome;</p><p>private int numerotripulantes;</p><p>private String datalancamento;</p><p>public void setnome(String no){</p><p>this.nome = no;</p><p>}</p><p>public String getnome() {</p><p>return this.nome;</p><p>}</p><p>public void setnumeroTripulantes(int numt) {</p><p>this.numerotripulantes = numt;</p><p>}</p><p>public int getnumeroTripulantes() {</p><p>return this.numerotripulantes;</p><p>}</p><p>public void setdataLancamento (String dataL){</p><p>this.datalancamento = dataL;</p><p>}</p><p>public String getdataLancamento() {</p><p>return this.datalancamento;</p><p>}</p><p>public void passageirosportripulante() {</p><p>int passag = getnumeroPassageiros();</p><p>int tripulantes = getnumeroTripulantes();</p><p>float divisao = (passag / tripulantes);</p><p>if (passag >= tripulantes ) {</p><p>System.out.println("numero de passageiros x tripulantes = " + divisao );</p><p>} else {</p><p>System.out.println("numero de tripulantes é maior do que o de passageiros ");</p><p>}</p><p>}</p><p>public void InsercaoNumerodeTripulantes() {</p><p>System.out.print("Numero de Tripulantes: ");</p><p>setnumeroTripulantes(Integer.parseInt(scan.nextLine()));</p><p>}</p><p>public void Cadastrar() {</p><p>Scanner sc = new Scanner(System.in);</p><p>super.Cadastrar();</p><p>InsercaoNumerodeTripulantes();</p><p>}</p><p>public void Imprimir() {</p><p>super.Imprimir();</p><p>System.out.print("Numero de Tripulantes: " + getnumeroTripulantes() + "\n");</p><p>passageirosportripulante();</p><p>}</p><p>}</p><p>Classe Avião:</p><p>package trabalhojava;</p><p>import java.util.Scanner;</p><p>/**</p><p>*</p><p>* @author marta</p><p>*/</p><p>public class ClasseAviao extends SuperClasse {</p><p>private String prefixo;</p><p>private String datarevisao;</p><p>public void setprefixo(String pref){</p><p>this.prefixo = pref;</p><p>}</p><p>public String getprefixo() {</p><p>return this.prefixo;</p><p>}</p><p>public void setdataRevisao (String dataR) {</p><p>this.datarevisao = dataR;</p><p>}</p><p>public String getdataRevisao () {</p><p>return this.datarevisao;</p><p>}</p><p>public void reajustapreco() {</p><p>String reajustar;</p><p>String teste = "s";</p><p>float reajuste;</p><p>System.out.println("Deseja reajustar o preço? digite s para continuar");</p><p>reajustar = scan.nextLine();</p><p>if (teste.equals(reajustar)) {</p><p>System.out.println("Digite o valor percentual para ajustar o preco, exemplo 50 para 50% de reajuste: ");</p><p>reajuste = Float.parseFloat(scan.nextLine());</p><p>System.out.println("Valor Reajustado: " + (getvalor() * ((reajuste / 100) + 1)) + "\n");</p><p>}</p><p>}</p><p>public void EntradaPrefixo() {</p><p>System.out.println("Digite o prefixo: ");</p><p>setprefixo(scan.nextLine());</p><p>}</p><p>public void EntradadataRevisao() {</p><p>System.out.println("Digite a data de Revisao: ");</p><p>setdataRevisao(scan.nextLine());</p><p>}</p><p>public void Cadastrar() {</p><p>super.Cadastrar();</p><p>EntradadataRevisao();</p><p>EntradaPrefixo();</p><p>}</p><p>public void Imprimir() {</p><p>super.Imprimir();</p><p>getprefixo();</p><p>getdataRevisao();</p><p>reajustapreco();</p><p>}</p><p>}</p><p>Classe Main:</p><p>package trabalhojava;</p><p>/**</p><p>*</p><p>* @author marta</p><p>*/</p><p>public class Main {</p><p>public static void main(String[] args) {</p><p>int tamanhoVetor = 10;</p><p>ClasseAviao vetAviao[] = new ClasseAviao [tamanhoVetor]; //declaração e alocação de espaço para o vetor "v"</p><p>//recriar como vetores</p><p>ClasseAviao aviao = new ClasseAviao();</p><p>System.out.println("*Dados do Aviao*");</p><p>for (int i = 0; i < tamanhoVetor; i++) {</p><p>vetAviao[i] = aviao;</p><p>System.out.println("*Insira os Dados do" + (i + 1) + "° Aviao*");</p><p>vetAviao[i] .Cadastrar(); System.out.println("Listagem dos Dados do " + (i + 1) + "° Aviao");</p><p>vetAviao[i] .Imprimir();</p><p>}</p><p>ClasseNavio vetNavio[] = new ClasseNavio[10]; //recriar como vetores</p><p>System.out.println("*Dados do Navio*");</p><p>for (int i = 0; i < vetNavio.length; i++) {</p><p>vetNavio[i] = new ClasseNavio();</p><p>System.out.println("*Insira os Dados do " + (i + 1) + "° Navio*");</p><p>vetNavio[i].Cadastrar(); System.out.println("Listagem dos Dados do " + (i + 1) + "° Navio");</p><p>vetNavio[i].Imprimir();</p><p>}</p><p>}</p><p>}</p><p>Resultado:</p><p>As informações destacadas em vermelho foram digitadas pelo usuário.</p><p>---------------------------------------------------------</p><p>*Dados do Aviao*</p><p>*Insira os Dados do 1º Aviao*</p><p>Capacidade do tanque(numeros): 10</p><p>Numero de Passageiros: 300</p><p>Valor: 650</p><p>Digite a data de Revisao: 05/7</p><p>Digite o prefixo: 71</p><p>Listagem dos Dados do 1º Aviao</p><p>Capacidade do tanque(numeros): 10</p><p>NumeroPassageiros: 300</p><p>Valor: 650.0</p><p>Deseja reajustar o preço? digite s para continuar</p><p>s</p><p>Digite o valor percentual para ajustar o preco, exemplo 50 para 50% de reajuste: 50</p><p>Valor Reajustado: 975.0</p><p>---------------------------------------------------------</p><p>*Insira os Dados do 2º Aviao*</p><p>Capacidade do tanque(numeros): 10</p><p>Numero de Passageiros: 250</p><p>Valor: 580</p><p>Digite a data de Revisao: 04/9</p><p>Digite o prefixo: 77</p><p>Listagem dos Dados do 2º Aviao</p><p>Capacidade do tanque(numeros): 10</p><p>NumeroPassageiros: 250</p><p>Valor: 580.0</p><p>Deseja reajustar o preco? digite s para continuar</p><p>s</p><p>Digite o valor percentual para ajustar o preco, exemplo 50 para 50% de reajuste: 50</p><p>Valor Reajustado: 870.0</p><p>Conclusão:</p><p>Durante a execução do programa, o construtor define as operações que devem ser realizadas ao criar um objeto com base nos dados fornecidos pelo usuário. O construtor é caracterizado por ter o mesmo nome da classe e não especificar um tipo de retorno. Ele é chamado automaticamente no momento em que o objeto é instanciado. Uma classe pode possuir múltiplos construtores, utilizando o conceito de sobrecarga.</p><p>Referências:</p><p>· E-book. Unijorge. Programação Orientada a Objetos I.</p><p>· Curso em Vídeo. Java POO. Disponível em https://www.cursoemvideo.com/curso/java-poo/.</p><p>image3.png</p><p>image4.png</p><p>image5.png</p><p>image6.png</p><p>image7.png</p><p>image9.png</p><p>image10.png</p><p>image11.png</p><p>image12.png</p><p>image13.png</p><p>image1.jpeg</p><p>image2.png</p><p>image8.png</p>