2ª Lista de Exercícios Orientação a Objetos



Documentos relacionados
Desenvolvimento Web TCC Turma A-1 /

2ª Lista de Exercícios Orientação a Objetos

Implementando uma Classe e Criando Objetos a partir dela

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objeto

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Desenvolvimento OO com Java Orientação a objetos básica

Introdução a Java. Hélder Nunes

Herança. Algoritmos e Programação II. Aula 5 Herança

Exercícios de Revisão Java Básico

Programação Orientada a Objetos (DPADF 0063)

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Computação II Orientação a Objetos

Orientação a Objetos com Java

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Classes Abstratas e Interfaces

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Programação Orientada a Objetos

Linguagem de Programação I. Orientação a Objetos em Java

Orientação a Objetos

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

UML: Diagrama de Casos de Uso, Diagrama de Classes

Programação Orientada a Objetos em Java. Herança

Análise e Projeto Orientados por Objetos

Capítulo 8. Introdução UML

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Curso Java Starter. 1

Técnicas de Programação II

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Análise e Projeto Orientado a Objetos

Laboratório de Programação

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Encapsulamento de Dados

Orientação a Objetos e a Linguagem Java

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Programação por Objectos. Java

2 Orientação a objetos na prática

UML Aspectos de projetos em Diagramas de classes

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

Python Intermediário. terça-feira, 4 de agosto de 15

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

POO Programação Orientada a Objetos. Classes em Java

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

4ª LISTA DE EXERCÍCIOS PROJETO DE CLASSES Disciplina: PC-II

9 Comandos condicionais

1. Herança. Sobrescrevem métodos - redefinem métodos herdados. Subclasse herda de uma superclasse

MODELAGEM E SIMULAÇÃO

Parte I. Orientação a objetos no PHP. Contato: <lara.popov@ifsc.edu.br> Site:

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

ORIENTAÇÃO A OBJETOS. Professora Lucélia Oliveira

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Roteiro do Programa e Entrada/Saída

Algoritmos e Programação II. Sobrecarga

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version LibreOffice Productivity Suite

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Noções sobre Objetos e Classes

Computação II Orientação a Objetos

Tipo Abstrato de Dados

Prof. Jhonatan Fernando

DAS5102 Fundamentos da Estrutura da Informação

INTRODUÇÃO À LINGUAGEM C++

ORIGEM E EVOLUÇÃO DA VIDA SISTEMÁTICA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

Implementação de Classe e Auto-Relacionamento em Java

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

2. Cadastrar Cargo de Funcionário: Gestão> Cadastro> RH> Cargo Cadastro auxiliar necessário quando for preciso cadastrar os funcionários da loja.

Exemplo de Modelagem Orientada a Objetos

Manual MQS. Logo após colocar essas informações abrirá a página inicial do sistema:

UML Diagramas Estruturais Classes

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Linguagens de Programação Aula 10

UML Diagramas de Classes

Uma visão mais clara da UML Sumário

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Especificação do Trabalho

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Programação Orientada a Objetos em Java

Reuso com Herança a e Composiçã

Programação Gráfica Parte 2 Versão em C 2006 PUCPR Tutoria de Jogos 1º Ano

Banco de Dados. Aula 5 - Prof. Bruno Moreno 06/09/2011

Introdução a Computação

Curso de Gestão em SI MODELAGEM DE DADOS. Rodrigo da Silva Gomes. (Extraído do material do prof. Ronaldo Melo - UFSC)

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Algoritmos e Programação Parte Teórica

Especificação do 3º Trabalho

Java 2 Standard Edition Como criar classes e objetos

HERANÇA. Prog. Orientada a Objetos em Java

Trabalho Computacional 2. Aplicativo para Gestão Financeira. Grupos: Os trabalhos devem ser feitos individualmente ou em duplas.

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Transcrição:

1 Universidade Federal Fluminense Instituto de Computação Departamento de Ciência da Computação Programação de Computadores II Professores: Leandro A. F. Fernandes, Luiz André P. P. Leme 2ª Lista de Exercícios Orientação a Objetos 1. Identifique as classes, atributos e métodos necessários para modelar e implementar: a) Uma conta corrente que possui um número, um saldo, um status que informa se ela é especial ou não, um limite e um conjunto de movimentações. b) Uma movimentação que possui uma descrição, um valor e uma informação se ela é uma movimentação de crédito ou débito. c) Um banco que armazene um conjunto de contas e forneça métodos que permitam que sejam feitos criações de conta, exclusão de contas, saques (uma conta corrente só pode fazer saques desde que o valor não exceda o limite de saque-limite + saldo negativo), depósitos, emissão de saldo e extrato e transferência entre contas. Uma vez feita a modelagem, implemente em Java. 2. Escreva uma classe que represente um país. Um país tem como atributos o seu nome, o nome da capital, sua dimensão em Km 2 e uma lista de países com os quais ele faz fronteira. Represente a classe e forneça os seguintes construtores e método: a) Construtor que inicialize o nome, capital e a dimensão do país; b) Métodos de acesso (obter/get) para as propriedades indicadas no item (a); c) Um método que permita verificar se dois países são iguais. Dois países são iguais se tiverem o mesmo nome e a mesma capital. A assinatura deste método deve ser: public boolean equals(final Pais outro); d) Um método que define quais outros países fazem fronteira (note que um país não pode fazer fronteira com ele mesmo); e) Um método que retorne a lista de países que fazem fronteira; f) Um método que receba um outro país como parâmetro e retorne uma lista de vizinhos comuns aos dois países.

2 3. Implemente uma classe que represente polinômios com uma variável. Esta classe deve conter: 1. Diferentes construtores; 2. Métodos de acesso; 3. Operações de adição e multiplicação. 4. Um método que faça a avaliação do polinômio, dado um número real x. Escreva, também, uma classe de testes para a classe que representa o polinômio. 4. De forma incremental, traduza o seguinte conjunto de classes em um programa Java. Importante: Não são permitidas chamadas a System.in, System.out ou similares de dentro das classes criadas. a) Classe: Porta Atributos: aberta, cor, dimensaox, dimensaoy, dimensaoz Métodos: void abre(), void fecha(), void pinta(string s), boolean estaaberta() Para testar, crie uma porta, abra e feche a mesma, pinte-a de diversas cores, altere suas dimensões e use o método estaaberta para verificar se ela está aberta. b) Classe: Casa Atributos: cor, porta1, porta2, porta3 Método: void pinta(string s), int quantasportasestaoabertas(), int totaldeportas() Para testar, crie uma casa e pinte-a. Crie três portas e coloque-as na casa; abra e feche as mesmas como desejar. Utilize o método quantasportasestaoabertas para imprimir o número de portas abertas. c) Classe: Edificio Atributos: cor, totaldeportas, totaldeandares, portas[] Métodos: void pinta(string s), int quantasportasestaoabertas(), void adicionaporta(porta p), int totaldeportas(), void adicionarandar(), int totaldeandares() Para testar, crie um edifício, pinte-o. Crie seis portas e coloque-as no edifício através do método adicionaporta, abra e feche-as como desejar. Utilize o método quantasportasestaoabertas para imprimir o número de portas abertas e o método totaldeportas para imprimir o total de portas em seu edifício. Cria alguns andares utilizado o método adicionarandar e retorne o número total de andares utilizando o método totaldeandares. d) As classes Casa e edifício ficaram muito parecidas. Crie a classe Imovel e coloque nela tudo o Casa e Edificio tem em comum. Faça Imovel superclasse de Casa e Edificio. Note que alguns métodos em comum não poderão ser implementados por Imovel (e.g., quantasportasestaoabertas e totaldeportas). Logo, essesdeverão ser declarados como métodos abstratos.

3 5. A hierarquia de classificação científica dos seres vivos segue a taxonomia de Lineu. Abaixo é apresentado um sumário parcial do mais geral (reino) para o mais específico (Espécie) na classificação. Neste sumário, Império, Domínio e Sub/Superdivisões são omitidos por simplicidade: Reino Filo (animais) / Divisão (plantas) Classe Ordem Família Gênero Espécie Com base no sumário acima, a classificação do homem, cão e mosca é dada por: Homem Cão Mosca Reino Animalia Animalia Animalia Filo Chordata Chordata Arthropoda Classe Mammalia Mammalia Insecta Ordem Primata Carnívora Díptera Família Hominidae Canidae Muscidae Gênero Homo Canis Musca Espécie Homo sapiens Canis familiaris Musca domestica Fica evidente a partir deste exemplo que existe uma organização hierárquica nas classificações para o homem, cão e mosca. Esta hierarquia pode ser expressão por uma árvore: Animalia Chordata Arthropoda Mammalia Insecta Primata Carnívora Díptera Hominidae Canidae Muscidae Homo Canis Musca Homo sapiens Canis familiaris Musca domestica

4 Neste exercício: a) Represente por meio de classes Java a hierarquia de classificação que envolve homem, cão e mosca na taxonomia de Lineu; b) Em sua modelagem verifique se faz sentido todas as classes serem concretas ou se é preciso definir alguma(s) delas como abstrata(s) c) Implemente o método String obterdescricao() em Animalia e sobreescreva este método em toda subclasse, de modo que quando invocado retornará toda a taxonomia de uma dada instância, por exemplo, para uma instância de Homo sapiens seria: Reino Aimalia Filo Chordata Classe Mammalia Ordem Primata Família Hominidae Gênero Homo Espécie Homo sapiens 6. Crie uma classe abstract de polígono. Todo polígono deve saber calcular sua área. Crie três tipos de especializações, respectivamente, para círculo, retângulo e triângulo. Sobrescreva nas especializações o método abstrato de cálculo de área declarado na classe de polígono. Crie uma classe de polígono complexo que pode ser constituída por um ou mais polígonos. Forneça um método que calcule a área deste de polígonos completos. Utilize o princípio de polimorfismo sempre que possível. 7. A integral de uma função para um determinado intervalo é a soma de sua área naquele intervalo. Ela pode ser calculada numericamente a partir de aproximações de retângulos. Implemente: a) A classe Integral juntamente com o método double calcularintegral(funcao f, double a, double b), que recebe um objeto Funcao e um intervalo [a, b] para calcular a integral no intervalo. A classe Integral tem um atributo denominado id (intervalo de discretização), que corresponde a largura fixa de cada retângulo. b) A classe Funcao é uma classe abstrata que tem um método abstrato double avaliar(double x), que recebe um valor x e retorna o valor da função em x. c) Classes Exponencial e Cubica como especializações da classe Funcao para calcular, respectivamente, as funções e, sobrescrevendo o método avaliar da classe ancestral. d) Uma classe descendente da classe Funcao denominada FuncaoAgregadora, que tem um vetor de objetos descendentes da classe Funcao. O valor retornado pelo método avaliar de FuncaoAgregadora é obtido por meio da soma de diversas funções que fazem parte desta função.

8. Escreva um programa que implemente as classes conforme o diagrama de classes apresentado abaixo: 5

9. Escreva um programa que implemente as classes conforme o diagrama de classes apresentado abaixo: 6