final class UltimosDiasMeses{ static final int[] DIAS_DO_MES = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; }

Documentos relacionados
Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Atributos e Métodos Estáticos

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Universidade Estadual de Santa Cruz

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Atributos e Métodos de Classe

Arrays em Java. Introdução à Programação. Bruno Cartaxo

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

9 Classes Abstractas e Interfaces

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

Conceitos Básicos da Programação OO

Orientação a Objetos e a Linguagem Java

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Vetores Unimensionais

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Programação por Objectos. Java

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos. Departamento de Informática Prof. Anselmo C.

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

Encapsulamento de Dados

POO29004 Programação Orientada a Objetos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação Orientada a Objetos em Java

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

MsC. João Maria MsC. Liviane Melo

Orientação a Objetos e Java

Programação Orientada a Objetos

Módulo 03. Identificadores, Palavras Reservadas, e Tipos

DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Revisão da Java Ex1 equilátero isóscele escaleno Ponto, Triangulo, Ex2 Ex3 Nota Ex4 TabelaUtil preenchetab imprimetab somadiv5 TabelaUtil

Universidade Estadual de Santa Cruz

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

Semestre de Inverno

Java para Desktop. Programação Orientada à Objetos 2 JSE

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

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

AULA 11 PROGRAMAÇÃO ORIENTADA A OBJETOS (INTRODUÇÃO) Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Programação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011

Curso: Técnico em Informática Integrado Disciplina: POO Carga horária: 60h Período: 2º Ano Professor: Edmilson Barbalho Campos Neto LISTA 02.

Idiomas de Programação

Programação Orientada a Objetos em Java

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

5 Reuso de Classes. Desenvolvimento OO com Java. Vítor E. Silva Souza

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

Programação Orientada a Objetos

Polimorfismo. O que é polimorfismo?

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Lista de Exercícios I. 01. Desenvolva um programa em Java que receba três valores numéricos inteiros e mostre a soma desses três números.

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Tipos, Literais, Operadores

Lição 11 Herança, polimorfismo e interfaces

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Linguagem de programação métodos/funções

Técnicas de Programação:

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

CURSO DE POO COM JAVA

Programação Java. Linguagem de Programação Java

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Fig.1 Estrutura de definição de instâncias típica de uma classe.

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

Linguagem de Programação. Diagrama de classes

Fundamentos de Programação

3 Classes e instanciação de objectos (em Java)

Classes e Objetos. Sintaxe de classe em Java

Definição de Classes de Objetos. Introdução à Programação André L. Santos

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Módulo 06 Desenho de Classes

Variáveis primitivas e Controle de fluxo

POO29004 Programação Orientada a Objetos

Introdução. LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++.

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

Strings e Arrays POO

Extensão de classes em Java - noções elementares - PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Tratamento de Exceções

PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015

LISTA DE EXERCÍCIOS 2

JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

EXERCICIO DE JAVA PARA FIXAÇÃO DE CONTEÚDO - Introdução a Prática de Programação Docente Pedro F. Carvalho /

Análise e Projeto Orientados por Objetos

LISTA DE EXERCÍCIO 7 Interfaces

COMPORTAMENTOS - Observações

Programação de Computadores II TCC /Turma A 1

Classe Produto e Calculo de Produto

Modificadores de Acesso e Atributos de Classe

Transcrição:

Fundação CECIERJ - Vice Presidência de Educação Superior a Distância Curso de Tecnologia em Sistemas de Computação Disciplina: Programação Orientada a Objetos AP1 1 semestre de 2017. Nome Assinatura Observações: 1. Prova sem consulta e sem uso de máquina de calcular. 2. Use caneta para preencher o seu nome e assinar nas folhas de questões e nas folhas de respostas. 3. Você pode usar lápis para responder as questões. 4. Ao final da prova devolva as folhas de questões e as de respostas. 5. Todas as respostas devem ser transcritas nas folhas de respostas. As respostas nas folhas de questões não serão corrigidas. Questão 1) (4.0 pontos) Implemente a classe concreta Data, que representa uma data. Esta classe deve: a) Armazenar a data em três atributos distintos de tipo inteiro primitivo, um para o dia, um para o mês e um para o ano. O valor assumido pelo atributo dia deve ir de 1 ao número máximo de dias do mês, o valor assumido pelo atributo mês deve ir de 1 a 12 e o valor assumido pelo atributo ano deve ser maior ou igual a 1900. Para simplificar a verificação de consistência, desconsidere a existência de anos bissextos. b) Declarar e implementar um construtor padrão que inicializa a data com o dia 1 de janeiro de 1900. c) Declarar e implementar um construtor de inicialização que recebe como argumentos os valores inteiros primitivos para o dia, mês e ano para o qual a data deve ser inicializada. d) Declarar e implementar o método void incrementar(), que incrementa a data armazenada em um dia. Fique atento para garantir que os atributos sejam atualizados de forma consistente. e) Sobrescrever o método String tostring() para que retorne uma instância de String no formato DD de MMMM de AAAA, onde DD é a dia com um ou dois dígitos, MMMM é o nome do mês por extenso e AAAA é o ano com quatro dígitos. Observação: não é permitida a inclusão de atributos além dos solicitados.

RESPOSTA: final class Meses{ static final String[] NOME_DO_MES = {"janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"; final class UltimosDiasMeses{ static final int[] DIAS_DO_MES = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; //LETRA (a) class Data { int dia; int mes; //LETRA (b) public Data() { this(1, 1, 1900); //LETRA (c) public Data(int dia, int mes, int ano) { if ((ano < 1900) (mes < 1 12 < mes) (dia < 1 UltimosDiasMeses.DIAS_DO_MES[mes - 1] < dia)) return; this.dia = dia; this.mes = mes; public int getdia() { return this.dia; public int getmes() { return this.mes; public int getano() { return this.ano; //LETRA (e) public void incrementar() { this.dia++; if (this.dia > UltimosDiasMeses.DIAS_DO_MES[this.mes - 1]) { this.dia = 1; this.mes++; if (this.mes > 12) { this.mes = 1; this.ano++; //LETRA (d) public String tostring() { return this.dia + " de " + Meses.NOME_DO_MES[this.mes - 1] + " de " + this.ano; public class AP1_Q1_2017_1{ public static void main(string[] args){

Data d = new Data(Integer.parseInt(args[0]), Integer.parseInt (args[1]), Integer.parseInt(args[2])); System.out.println(d); d.incrementar(); System.out.println(d); Questão 2) (3.0 pontos) Considere as classes abaixo referente a um sistema de inventário: class Apto { int codigo, numquartos; double metragem, preco; public Apto(int codigo, int numquartos, double metragem, double preco) { this.numquartos = numquartos; this.metragem = metragem; this.preco = preco; class Carro { int codigo; String nome; double valor; public Carro(int codigo, String nome, int ano, double valor) { this.nome = nome; this.valor = valor; a) Crie uma classe Principal e instancie um objeto para cada classe fornecida. b) Considere que queiramos somar os valores dos bens no cálculo de um inventário. Adicione os objetos (item a) a um vetor e calcule a soma destes objetos usando uma única chamada de método (método polimórfico). Altere o mínimo possível as classe Apto e Carro de forma que essa implementação seja possível. Adicione qualquer outra classe ou método, se for necessário. RESPOSTA: interface Bem { double retornavalor(); class Apto /* item b) */ implements Bem { int codigo, numquartos; double metragem, preco; public Apto(int codigo, int numquartos, double metragem, double preco) { this.numquartos = numquartos; this.metragem = metragem;

this.preco = preco; public double retornavalor() { return preco; class Carro /* item b) */ implements Bem { int codigo; String nome; double valor; public Carro(int codigo, String nome, int ano, double valor) { this.nome = nome; this.valor = valor; public double retornavalor() { return valor; public class AP1_2017_1_Q2 { public static void main(string[] args) { //item a) Apto apto = new Apto(1, 3, 100, 500); Carro carro = new Carro(2, "Lamborghini", 2016, 1000); //item b) Bem[] shapes = new Bem[2]; shapes[0] = apto; shapes[1] = carro; double soma = 0; for (int i=0; i<shapes.length; i++) soma = soma + shapes[i].retornavalor(); System.out.println("O valor da soma é: " + soma); Questão 3) (3.0 pontos) Dada a classe abaixo que representa um ponto em 2 dimensões, class Ponto { private double x, y; public Ponto(double x, double y) { this.x = x; this.y = y;

defina uma classe Ponto3D que permita a criação de um ponto em 3 dimensões, ou seja XYZ. Além disso, implemente: a) Dado um outro ponto como argumento (um outro objeto Ponto3D ou as coordenadas x, y e z deste outro ponto), retorne o objeto Ponto3D referente à diferença entre as coordenadas. b) Calcule a distância entre 2 pontos. Supondo ponto P com dimensões px, py, pz, Q com dimensões qx, qy e qz, a distância é calculada com a seguinte fórmula: distancia = raiz_quadrada ( (px qx) 2 + (py qy) 2 + (pz qz) 2 ) Obs.: 1) Utilize os conceitos de OO vistos sempre que possível; 2) A raiz quadrada pode ser calculada com o método Math.sqrt() RESPOSTA: class Ponto {... // Necessário para acessar os campos na classe Ponto3D public double getx() { return x; ; public double gety() { return y; ; class Ponto3D extends Ponto { private double z; public Ponto3D(double x, double y, double z) { super(x, y); this.z = z; public double getz() { return z; ; // item a) OU... public Ponto3D diferenca (Ponto3D p) { return new Ponto3D (p.getx() - this.getx(), p.gety() - this.gety(), p.getz() - this.getz()); //... item a) public Ponto3D diferenca (double x, double y, double z) { return new Ponto3D (x - this.getx(), y - this.gety(), z - this.getz()); public double distancia (Ponto3D p) { return Math.sqrt(Math.pow(p.getX() - this.getx(), 2) + Math.pow(p.getY() - this.gety(), 2) + Math.pow(p.getZ() - this.getz(), 2));