3. Para a classe Circulo abaixo, escreva os métodos indicados pelos dois primeiros comentários.

Documentos relacionados
INSTRUÇÕES DE REPETIÇÃO

5. Escreva um método em Java de nome MaiorNumero, que recebe quatro números inteiros e retorna o valor do maior deles.

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Classes, instâncias e métodos de acesso. prática

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

ASSOCIAÇÃO ENTRE CLASSES

DEFINIÇÃO DE MÉTODOS

COMPORTAMENTOS - Observações

Algoritmos I Aula 13 Linguagem de Programação Java

Exercícios sobre herança e polimorfismo

Programação Orientada a Objetos II

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

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Exercícios com arrays unidimensionais

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

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

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

POO - Programação Orientada a Objetos

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

Nome do Aluno: Matrícula: Turma: Data: 08/04/2013

Conceitos Básicos da Programação OO

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

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

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

Atributos e Métodos Estáticos

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

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

Linguagem de Programação II Implementação

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Programação Java. - Classes, Objetos, Atributos e Métodos - Marco Fagundes Marco Fagundes -

Programação Orientada a Objetos em Java

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

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

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

Fundamentos de programação

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

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

Linguagem de Programação II Implementação

Como exemplo, vamos criar uma subclasse da classe Funcionario, vista nos capítulos anteriores.

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

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação por Objectos. Java

Programação Orientada a Objetos

Classes e Objetos POO

EXPRESSÕES ARITMÉTICAS

Aula 7 Modularização. Processamento da Informação. Universidade Federal do ABC

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

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

Análise de Programação

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Construtores e Especificadores de Acesso

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

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

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Classes e Objetos. Sintaxe de classe em Java

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

POO Programação Orientada a Objetos

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

Tratamento de Exceções

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz

Linguagem de programação Java

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Seleção Múltipla Laços (while, do-while, for) AULA 05

O objetivo aqui é criar um sistema para gerenciar os funcionários do Banco.

package especificadores1; public class Alpha { public static void alphapublic(){ System.out.println("Alpha public!"); }

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

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

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

AULA 15 CONSTRUTORES. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

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.

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

Como usar o bluej. Laboratório I Prof.ª Vera Alves

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

Universidade Estadual de Santa Cruz

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

È um tipo estruturado homogêneo

Linguagem de Programação. Diagrama de classes

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

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

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

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

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

Transcrição:

Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Lista de exercícios 2 1. Dada a classe public class Material{ private int codigo; //todo material tem um código único para identificá-lo private String nome; // descreve o material private int saldo; // quantidade em estoque /** Muda o nome do material */ /** Muda o código do material */ /** Mostra na tela os valores dos campos de um material */ /** Abastece o estoque com certa quantidade do material */ /** Retira do estoque certa quantidade do material, abatendo-a do saldo */ a) Escreva os três primeiros métodos da classe Material, conforme indicados pelos comentários. b) Escreva um conjunto de instruções Java que façam o seguinte: - instanciar dois objetos do tipo Material; - para cada um dos objetos, chamar cada um dos métodos escritos no ex. anterior. 2. Dado o método public void setendereco(string novoendereco){... indique quais chamadas abaixo são corretas, considerando um objeto de nome p. Para as incorretas informe o motivo. a) p.setendereco(); b) p.setendereco(double v); c) p.setendereco("av. Unisinos, 950"); d) String novoend = "Av. Unisinos, 950"; p.setendereco(novoend); e) System.out.println(p.setEndereco("Av. Unisinos, 950")); 3. Para a classe Circulo abaixo, escreva os métodos indicados pelos dois primeiros comentários. public class Circulo{ private double raio; /** Altera o valor do raio */ /** Exibe o valor do raio */ /** Calcula o valor da área do círculo */ /** Calcula o valor do perímetro do círculo */ 4. Escreva um outro método para a classe Material, que mostre os valores dos atributos na tela no seguinte formato: Código Nome Saldo xxxxxx xxxxxxxxxxxxxxxxxxxxxxx xxxxx 5. O que será exibido na tela pelo seguinte trecho de um método? String s = "blablu"; System.out.print(s + "glu"); System.out.println( s + " " + s); Programação I - Prof. Aníbal - Lista de exercícios 2 1

6. Dada a classe: public class Quadrado{ private int lado; public void setlado(int medidadolado){ lado = medidadolado; public void exibedados(){ System.out.println( Lado: + lado); O que será mostrado na tela pelo trecho abaixo? (Se você não desenhar o que acontece na memória, terá dificuldade de acertar) Quadrado q1 = new Quadrado(); Quadrado q2 = q1; q1.exibedados(); q2.setlado(6); q1.exibedados(); q1.setlado(10); q2.exibedados(); 7. Crie um construtor para a classe Circulo. 8. Crie um construtor para a classe Material, com três parâmetros. 9. Dado o construtor public Produto(String umnome, double umpreco){... quais das chamadas abaixo é inválida e por quê? a) Produto p = new Produto("Laranja", 3.50); b) Produto laranja = new Produto("Banana", 2.35); c) Produto banana = new Produto(3.50); d) new Produto("Laranja", 3.50); e) Produto p; p = new Produto(3.50, "Laranja"); f) Produto p; p = new Produto("Laranja", 3.50); g) Produto p; p.produto("laranja", 3.50); h) Qual o nome da classe? 10. Escreva um segundo construtor (sobrecarga) para a classe Material, com apenas dois parâmetros: um para inicializar o código e outro para o nome. O saldo inicial deverá ser 0. A seguir, escreva todas as formas que a classe tem de instanciar um objeto do tipo Material. 11. A classe Produto tem os seguintes construtores: public Produto(String umnome, double umpreco) {... // construtor 1 public Produto(String umnome) {... // construtor 2 public Produto( ) {... // construtor 3 Qual dos construtores será chamado para cada situação abaixo? a) Produto p = new Produto( ); b) Produto p = new Produto("Banana", 2.45); c) Produto p; p = new Produto ("Laranja"); d) Produto p = new Produto(5.50); Faça um diagrama representando na memória os vários objetos criados acima. Programação I - Prof. Aníbal - Lista de exercícios 2 2

12. Sobrecarregue o método exibedados da classe Funcionario (vista em aula), que tenha um parâmetro do tipo String, de nome moldura. Quando chamado, será passado um String, como este "******************************" ou este "-------------...", que deverá ser impresso antes e depois dos dados. Por exemplo, se a chamada for Funcionario f1 = new Funcionario("Mario Quintana", 4000.0, 0) f1.exibedados ("++++++++++++++++++++++++++++++"); sairá na tela: ++++++++++++++++++++++++++++++ Nome: Mario Quintana Salario: 4000.0 Dependentes: 0 ++++++++++++++++++++++++++++++ 13. Crie uma classe de nome TestaCirculo, que instancie um círculo do tipo dado na classe Circulo, faça algumas alterações de raio neste objeto e exiba após cada mudança o raio para verificar se as mudanças foram feitas corretamente. 14. Dadas as duas classes abaixo public class C{ private int i; private String s; private double d; public C(double dd, int ii, String ss){ i = ii; d = dd; s = ss; public void m( ){ System.out.print("i = " + i); System.out.print(" d = " + d); System.out.println(" s = " + s); public class TestaC{ public static void main (String args[]){ C obj1 = new C(56.0, 2, "blabli"); obj1.m( ); C obj2 = new C(0.5, 10, "glugli"); obj2.m( ); a) ao executar a classe TestaC o que acontece na memória (faça um diagrama disso)? b) o que é exibido na tela? c) rescreva o método m com uma só instrução System.out de modo a resultar no mesmo efeito. d) dentro do método main, seria válido o comando seguinte? new C(1.5, 5, "blubla").m(); Se inválido, por quê? se válido, qual o efeito? 15. Escreva a classe de teste TestaMaterial, instancie alguns objetos do tipo Material e chame alguns métodos. Programação I - Prof. Aníbal - Lista de exercícios 2 3

16. Dada a classe abaixo public class TestaCirculo{ public static void main(string args[]){ Circulo c1; c1 = new Circulo(3); Circulo c2 = c1; c1.exiberaio(); c2.exiberaio(); Circulo c3 = new Circulo(8.5); c3.exiberaio(); c2 = c3; c2.exiberaio(); c3 = new Circulo(5); c3.exiberaio(); c2 = new Circulo(4.2); c2.exiberaio(); a) Indique o que ocorre na memória (desenhando os vários objetos criados) e o que é exibido na tela, pela execução do trecho dado. b) Qual o erro lógico ocasionado pela penúltima instrução (c2 = new Circulo(4.2);) e como ele poderia ser evitado? 17. Dado o trecho Funcionario a = new Funcionario("Miguel Angelo", 5430.00, 1); Funcionario b = new Funcionario("Rafael", 3000,00, 5); escreva as atribuições necessárias para permutar os objetos de a e b, sem instanciar novos objetos. 18. Repita o exercício anterior para quatro objetos a, b, c e d, fazendo o seguinte rodízio: a b c d a 19. Quais dos métodos abaixo têm mesma assinatura? a) public void m1(string s, double d) {... b) public int m1(string n, double x) {... c) public void m1(double d, String s) {... d) public void m1(double d) {... e) public void m1(double x) {... 20. Escreva um método de acesso (get) para cada um dos atributos da classe Material. Escreva uma linha de código que exiba os atributos de um material, chamando os métodos que você acabou de escrever. 21. Crie um método de acesso (get) para a classe Circulo que devolva o valor atual do raio. Escreva instrução adicional na classe TestaCirculo que exiba esse valor para um dos objetos criados, chamando o método que V. acabou de codificar. 22. O que será impresso, se o usuário digitar blu e depois digitar blo? Teclado t = new Teclado(); System.out.println("Bla" + t.lestring( ) + "bli"); System.out.println("Bla" + t.lestring("digite um texto: " ) + "bli"); 23. O que acontecerá se o usuário digitar 123.5? int i = t.leint("entre com um valor inteiro: "); 24. Descreva o que acontecerá com a execução das instruções seguintes, se colocadas no método main da classe TestaMaterial (indique o que ocorrerá na memória, no teclado, na tela): Programação I - Prof. Aníbal - Lista de exercícios 2 4

Teclado t = new Teclado(); Material mat = new Material(t.leInt("Codigo: "), t.lestring("nome: "), t.leint("saldo inicial: ")); mat.exibedados( ); Algumas respostas 1. public void setnome(string novonome){ nome = novonome; public void setcodigo(int novocodigo){ codigo = novocodigo; public void exibedados(){ System.out.println( Código: + codigo); System.out.println( Nome: + nome); System.out.println( Saldo em estoque: + saldo); 2. Corretos os itens c e d. Item (a) falta um argumento; item b tem um erro de codificação no argumento e não poderia ser double; no item (e), um método void não é aceito porque não retorna nenhum valor para ser impresso. 4. public void exibedados2(){ System.out.println( Código Nome Saldo ); System.out.println(código + + nome + + saldo); 5. blabluglublablu blablu. 6. Lado: 0 Lado: 6 Lado: 10 7. public Circulo(double r){ raio = r; 8. public Material(int cod, String n, int saldoinicial){ codigo = cod; nome = n; saldo = saldoinicial; 9. (c) chamada tem um só argumento para construtor de dois parâmetros; (d) embora esta chamada seja válida, ela parece inútil, pois o objeto criado não é atribuído a nenhuma variável e, portanto, não poderá ser usado pelo programa; (e) os argumentos estão invertidos; (g) construtor só pode ser chamado com new; (h) Produto. 10. public Material(int cod, String n){ codigo = cod; nome = n; Programação I - Prof. Aníbal - Lista de exercícios 2 5

saldo = 0; Instanciando dois objetos do tipo Material, usando cada um dos construtores: Material m = new Material(123, caneta, 30); Material m1 = new Material (345, lápis ); 11. (a) 3; (b) 1; (c) 2; (d) erro não existe nenhum construtor com essa assinatura. 12. public void exibedados(string moldura){ System.out.println(moldura); System.out.println("Nome: " + nome); System.out.println("Salário: " + salario); System.out.println("Dependentes: " + numerodedependentes); System.out.println(moldura); 14. a) obj1 i s C i 2 blabli obj2 s C i 10 glugli d 56.0 d 0.5 b) i = 2 d = 56.0 s = blabli i = 10 d = 0.5 s = glugli c) public void m(){ System.out.println("i = " + i + \n d = " + d + \n s = + s); d) Válido. Um novo objeto do tipo C é instanciado e este objeto chama o método m(), que exibe na tela i = 5 d = 1.5 s = blubla Todavia, o objeto criado na memória não poderia ser acessado de novo, pois não tem nenhuma variável objeto referenciando-o. 16. b) O objeto círculo de raio 8.5 não é mais acessível por nenhuma variável objeto. Ele não pode mais ser acessado. Para evitar tal erro, deveríamos declarar outra variável para referenciá-lo, antes da instrução referida (Circulo c4 = c2;). 17. Funcionario salva = a; a = b; b = salva; 18.Funcionario salva = a; a = b; b = c; c = d; d = salva; 19. (a) e (b) têm mesma assinatura; (d) e (e) têm mesma assinatura. 22. Blablubli Blablobli 23. Erro em tempo de execução (uma exception), mais especificamente, NumberFormatException provocada pela digitação de um valor de ponto flutuante quando era esperado um inteiro. Programação I - Prof. Aníbal - Lista de exercícios 2 6