6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

Tamanho: px
Começar a partir da página:

Download "6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza"

Transcrição

1 Desenvolvimento OO com Java 6 Polimorfismo Vítor E. Silva Souza (vitorsouza@inf.ufes.br) ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Este obra foi licenciada sob uma Licença Creative Commons Atribuição 3.0 Não Adaptada.

2 Obje%vos da parte 6 Entrar em detalhes no conceito de polimorfismo, muito importante para a orientação a objetos: Hierarquias polimórficas; Classes e métodos abstratos; Polimorfismo com java.lang.object. Desta forma: Aumentar ainda mais a capacidade de abstração para construção de sojwares mais modulares e reu%lizáveis. Maio 2013 O Paradigma Orientado a Objetos 2

3 Polimorfismo Do grego poli + morphos = múl%plas formas; Caracterís%ca OO na qual se admite tratamento idên%co para objetos diferentes baseado em relações de semelhança; Em outras palavras, onde uma classe base é esperada, aceita- se qualquer uma de suas subclasses. Maio 2013 O Paradigma Orientado a Objetos 3

4 Relembrando o exemplo da parte 5 class Forma { public void desenhar() { System.out.println("Forma"); class Circulo extends Forma { public void desenhar() { System.out.println("Círculo"); class Quadrado extends Forma { /*... */ class Triangulo extends Forma { /*... */ Maio 2013 O Paradigma Orientado a Objetos 4

5 Relembrando o exemplo da parte 5 public class Teste { private static void desenha(forma[] fs) { for (int i = 0; i < fs.length; i++) fs[i].desenhar(); public static void main(string[] args) { Forma[] formas = new Forma[] { new Circulo(), new Forma(), new Quadrado(), new Triangulo() ; desenha(formas); Maio 2013 O Paradigma Orientado a Objetos 5

6 Relembrando o exemplo da parte 5 Ampliação (upcas&ng) é a conversão implícita de uma subclasse para uma superclasse: class Teste { public static void inverter(forma f) { System.out.println("Inverte " + f); public static void main(string[] args) { Circulo c = new Circulo(); inverter(c); // Upcasting! Forma f = new Quadrado(); // Upcasting! Maio 2013 O Paradigma Orientado a Objetos 6

7 Incrementando o exemplo O compilador realmente não sabe qual é o %po. Veja um exemplo com geração aleatória: public static void main(string[] args) { Forma f = null; switch((int)(math.random() * 3)) { case 0: f = new Circulo(); case 1: f = new Quadrado(); case 2: f = new Triangulo(); default: f = new Forma(); f.desenhar(); Maio 2013 O Paradigma Orientado a Objetos 7

8 Esquecendo o %po do objeto Quando realizamos ampliação, esquecemos o %po de um objeto: Forma f = new Quadrado(); Não sabemos mais qual é a classe específica de f. Sabemos apenas que ele é uma forma; Por que fazer isso? Maio 2013 O Paradigma Orientado a Objetos 8

9 Métodos mais gerais Fazemos ampliação para escrevermos métodos mais gerais, para poupar tempo e esforço: class Teste { public void inverter(circulo f) { System.out.println("Inverte " + f); public void inverter(quadrado f) { System.out.println("Inverte " + f); public void inverter(triangulo f) { System.out.println("Inverte " + f); Maio 2013 O Paradigma Orientado a Objetos 9

10 Amarração No entanto, se trabalhamos com Forma, como saber qual implementação executar quando chamamos um método? public class Teste { private static void desenha(forma[] fs) { for (int i = 0; i < fs.length; i++) fs[i].desenhar(); fs[i] é do tipo Forma. Chamar sempre Forma.desenhar()? Maio 2013 O Paradigma Orientado a Objetos 10

11 Amarração tardia Em linguagens estruturadas, os compiladores realizam amarração em tempo de compilação; Em linguagens OO com polimorfismo, não temos como saber o %po real do objeto em tempo de compilação; A amarração é feita em tempo de execução, também conhecida como: Amarração tardia; Amarração dinâmica; ou Late binding. Maio 2013 O Paradigma Orientado a Objetos 11

12 Amarração tardia Maio 2013 O Paradigma Orientado a Objetos 12

13 Quando usar Amarração dinâmica é menos eficiente; No entanto, ela que permite o polimorfismo; Java usa sempre amarração dinâmica; A exceção: se um método é final, Java usa amarração está%ca (pois ele não pode ser sobrescrito); Você não pode escolher quando usar um ou outro. É importante apenas entender o que acontece. Maio 2013 O Paradigma Orientado a Objetos 13

14 Benercios do polimorfismo Extensibilidade: Podemos adicionar novas classes sem alterar o método polimórfico. class Retangulo extends Forma { public void desenhar() { System.out.println("Retangulo"); class Quadrado extends Retangulo { public void desenhar() { System.out.println("Quadrado"); Maio 2013 O Paradigma Orientado a Objetos 14

15 Benercios do polimorfismo class Reta extends Forma { public void desenhar() { System.out.println("Reta"); public class Teste { public void inverter(forma f) { System.out.println("Inverte " + f); public static void main(string[] args) { Forma f = new Reta(); f.desenhar(); inverter(f); Maio 2013 O Paradigma Orientado a Objetos 15

16 Benercios do polimorfismo A interface de todos é definida pela classe base; Novas classes possuem a mesma interface, portanto o sistema já sabe lidar com elas; Mesmo que todas as classes já existam de princípio, poupa- se tempo e esforço, codificando um método único para todas. Maio 2013 O Paradigma Orientado a Objetos 16

17 Sobrescrita vs. sobrecarga Cuidado para não confundir: class Forma { public void aumentar(int t) { System.out.println("Forma.aumentar()"); class Linha extends Forma { // Foi feita sobregarga e não sobrescrita! public void aumentar(double t) { System.out.println("Linha.aumentar()"); Maio 2013 O Paradigma Orientado a Objetos 17

18 Sobrescrita vs. sobrecarga A confusão gera um erro muito dircil de descobrir: public class Teste { private static void aumentar(forma f) { f.aumentar(10); public static void main(string[] args) { Linha l = new Linha(); aumentar(l); // Forma.aumentar() Maio 2013 O Paradigma Orientado a Objetos 18

19 Classes e métodos abstratos Algumas vezes classes no topo da hierarquia são muito gerais: O que é uma forma? Como se desenha uma forma? Como se aumenta uma forma? Tais operações não fazem sen%do. Queremos apenas definir que elas existam, mas não implementá- las; A solução: métodos abstratos. Maio 2013 O Paradigma Orientado a Objetos 19

20 Classes e métodos abstratos Uma classe que possui métodos abstratos deve ser declarada como abstrata: abstract class Forma { public abstract void desenhar(); class Circulo extends Forma { public void desenhar() { System.out.println("Círculo"); Maio 2013 O Paradigma Orientado a Objetos 20

21 Classes abstratas Não permitem criação de instâncias (objetos): Um método abstrato não possui implementação, portanto não pode ser chamado; Podemos ter classes abstratas sem métodos abstratos, mas não o contrário. Para ser ú%l, deve ser estendida: Suas subclasses devem implementar o método ou declararem- se como abstratas. Servem para definir interfaces e prover algumas implementações comuns. Maio 2013 O Paradigma Orientado a Objetos 21

22 Classes e métodos abstratos Algumas regras: Métodos está%cos não podem ser abstratos; Construtores não podem ser abstratos; Classes abstratas podem ter construtores (lembre- se que são chamados pelas subclasses!); Métodos abstratos não podem ser privados. Maio 2013 O Paradigma Orientado a Objetos 22

23 Classes e métodos abstratos // Classe abstrata pura. abstract class Forma { public abstract void desenhar(); public abstract void aumentar(int t); // Classe abstrata. abstract class Poligono extends Forma { private int lados; public Poligono(int lados) { this.lados = lados; public int getlados() { return lados; public abstract void pintar(int cor); Maio 2013 O Paradigma Orientado a Objetos 23

24 Classes e métodos abstratos // Classe concreta. class Retangulo extends Poligono { public Retangulo() { super(4); public void desenhar() { System.out.println("Retangulo.desenhar"); public void aumentar(int t) { System.out.println("Retangulo.aumentar"); public void pintar(int cor) { System.out.println("Retangulo.pintar"); Maio 2013 O Paradigma Orientado a Objetos 24

25 Polimorfismo com java.lang.object Relembrando a interface comum a todas as classes escritas em Java: clone(): cria uma cópia do objeto (uso avançado); equals(object o): verifica se objetos são iguais; finalize(): chamado pelo GC (não é garan%a); getclass(): retorna a classe do objeto; hashcode(): função hash; notify(), notifyall() e wait(): para uso com threads; tostring(): converte o objeto para uma representação como String. Maio 2013 O Paradigma Orientado a Objetos 25

26 O método equals() Compara dois objetos. Retorna true se forem iguais, false se não forem; Permitem polimorfismo em grande escala: Podemos criar uma classe conjunto que armazena objetos de qualquer classe, desde que sejam objetos diferentes; Podemos implementar um método que permite dizer se um objeto está no conjunto, se um conjunto está con%do em outro, etc. Maio 2013 O Paradigma Orientado a Objetos 26

27 O método equals() class Valor { int i; public Valor(int i) { this.i = i; public class Teste { public static void main(string[] args) { Integer m = new Integer(100); Integer n = new Integer(100); System.out.println(m == n); // false System.out.println(m.equals(n)); // true Valor v = new Valor(100); Valor u = new Valor(100); System.out.println(v.equals(u)); // false Maio 2013 O Paradigma Orientado a Objetos 27

28 O método equals() class Valor { int i; public Valor(int i) { this.i = i; public boolean equals(object o) { return (o instanceof Valor) && (((Valor)o).i == i); public class Teste { public static void main(string[] args) { Valor v = new Valor(100); Valor u = new Valor(100); System.out.println(v.equals(u)); // true Maio 2013 O Paradigma Orientado a Objetos 28

29 O método tostring() Retorna uma representação em String do objeto em questão; Permite polimorfismo em grande escala: Se quisermos imprimir um objeto de qualquer classe, ele será chamado; Se quisermos concatenar um objeto de qualquer classe com uma String, ele será chamado. Maio 2013 O Paradigma Orientado a Objetos 29

30 O método tostring() class Valor { int i; public Valor(int i) { this.i = i; public class Teste { public static void main(string[] args) { Integer m = new Integer(100); System.out.println(m); // 100 Valor v = new Valor(100); System.out.println(v); // Valor@82ba41 Maio 2013 O Paradigma Orientado a Objetos 30

31 O método tostring() class Valor { int i; public Valor(int i) { this.i = i; public String tostring() { return "" + i; public class Teste { public static void main(string[] args) { Integer m = new Integer(100); System.out.println(m); // 100 Valor v = new Valor(100); System.out.println(v); // 100 Maio 2013 O Paradigma Orientado a Objetos 31

32 Conclusões O polimorfismo permite a criação de métodos mais gerais, graças à amarração tardia; Hierarquias polimórficas são mais extensíveis; Classes e métodos abstratos auxiliam na criação de modelos mais precisos; A classe Object, ancestral de todas as classes Java, promove polimorfismo em grande escala com seus métodos. Maio 2013 O Paradigma Orientado a Objetos 32

33 h"p://nemo.inf.ufes.br/ Maio 2013 O Paradigma Orientado a Objetos 33

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

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real: Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos

Leia mais

Capítulo 5 Reuso de Classes

Capítulo 5 Reuso de Classes Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Desenvolvimento Orientado a Objetos com Java Capítulo 5 Reuso de Classes

Leia mais

Java na Prática. Célio Silva Aula 3

Java na Prática. Célio Silva Aula 3 Java na Prática Célio Silva Aula 3 Java na Prática Collections List List são listas de coisa ordenadas/não ordenadas, com duplicações permitidas e com um índice Servem para encapsular código de tratamento

Leia mais

Aula 10 Polimorfismo. Prof. Jefersson Alex dos Santos. Baseado em: http://homepages.dcc.ufmg.br/~fernando/classes/dcc052/ementa/lesson8/

Aula 10 Polimorfismo. Prof. Jefersson Alex dos Santos. Baseado em: http://homepages.dcc.ufmg.br/~fernando/classes/dcc052/ementa/lesson8/ Aula 10 Polimorfismo Prof. Jefersson Alex dos Santos Baseado em: http://homepages.dcc.ufmg.br/~fernando/classes/dcc052/ementa/lesson8/ Polimorfismo Definição: É a capacidade de um objeto em decidir que

Leia mais

Introdução à orientação a objetos

Introdução à orientação a objetos Universidade Federal de Juiz de Fora PET Elétrica Introdução à orientação a objetos Tutor: Francisco José Gomes Aluno: João Tito Almeida Vianna 18/05/2013 1 Programação Estruturada x Orientação a objetos

Leia mais

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Orientação a Objetos Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar

Leia mais

Simulado de Linguagem de Programação Java

Simulado de Linguagem de Programação Java Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as

Leia mais

www.cotiinformatica.com.br

www.cotiinformatica.com.br Criar um projeto ->. Criar no pacote entity a classe Usuario com os atributos(idusuario, nomeusuario, login, senha). Implementar a interface Comparable. Criar construtor vazio, o construtor cheio, o tostring

Leia mais

Análise e Projeto Orientado a Objetos. Nazareno Andrade Baseado no material dos profs. Hyggo Almeida e Jacques Sauvé

Análise e Projeto Orientado a Objetos. Nazareno Andrade Baseado no material dos profs. Hyggo Almeida e Jacques Sauvé Análise e Projeto Orientado a Objetos Nazareno Andrade Baseado no material dos profs. Hyggo Almeida e Jacques Sauvé O que veremos hoje? Análise e Projeto Definição Comparação Análise e Projeto OO Definição

Leia mais

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 8 Classes Internas Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

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

Programação Orientada a Objetos em Java. Herança Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Modulo IIa Extra: Object

Modulo IIa Extra: Object Modulo IIa Extra: Object Professor Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Linguagem de Programação JAVA Ismael H. F. Santos,

Leia mais

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo Programação Java Construção de Interface gráfica Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Processo Básico: OO + Eventos Instanciar os componentes de interface por exemplo,

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

Orientação a Objetos

Orientação a Objetos Orientação a Objetos 1. Manipulando Atributos Podemos alterar ou acessar os valores guardados nos atributos de um objeto se tivermos a referência a esse objeto. Os atributos são acessados pelo nome. No

Leia mais

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos (DPADF 0063) Programação Orientada a Objetos (DPADF 0063) Aula 1 Motivação e Introdução Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet

Leia mais

Herança. Prof. Leonardo Barreto Campos 1

Herança. Prof. Leonardo Barreto Campos 1 Herança Prof. Leonardo Barreto Campos 1 Sumário Introdução; Herança Simples; Tipos de Herança; Classe Abstrata; Conversão de Tipos entre Base e Derivada; Níveis de Herança; Herança Múltipla; Bibliografia;

Leia mais

Paradigmas de Programação. Genéricos

Paradigmas de Programação. Genéricos Genéricos Extensão à linguagem Java apresentada pelo JDK1.5 Permite reutilização de software com tipo seguro Permite abstrair do tipo de dados Exemplo: Desenvolver código para uma classe (por ex, uma pilha)

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Herança Prof. Francisco de Assis S. Santos, Dr. São José, 2014. Herança em POO O conceito de herança torna mais rápido o desenvolvimento de softwares complexos Novas classes

Leia mais

Exercício de Estrutura de dados. Java Fila

Exercício de Estrutura de dados. Java Fila Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado

Leia mais

Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads.

Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads. Threads Folha 5-1 Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads. Uma Thread é similar a um processo no sentido em que corresponde a um conjunto de instruções

Leia mais

Programação Orientada por Objectos com Java. Ademar Aguiar. www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt. MRSC, Programação em Comunicações

Programação Orientada por Objectos com Java. Ademar Aguiar. www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt. MRSC, Programação em Comunicações Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Java Networking java.net.* 141 Package java.net Java dispõe de diversas classes para manipular e processar informação

Leia mais

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases) MDS II Aula 04 Concepção Requisitos Diagrama de Casos de Uso (Use Cases) 55 DIAGRAMA DE CASOS DE USO BENEFÍCIOS DOS CASOS DE USO ILUSTRAR POR QUE O SISTEMA É NECESSÁRIO OS REQUISITOS DO SISTEMA SÃO COLOCADOS

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível. Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante

Leia mais

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06 Disciplina: Linguagem de Programação C Profª Viviane Todt Diverio Funções, variáveis, parâmetros formais

Leia mais

Aula 3 Objeto atual com referencia THIS e Classes com Herança

Aula 3 Objeto atual com referencia THIS e Classes com Herança Aula 3 Objeto atual com referencia THIS e Classes com Herança Profº Msc. Alexsandro M. Carneiro Engenharia de Computação Tec. Análise e Des. De Sistemas Tópicos Abordados Controlee de Acesso Herança Definição:

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.1/26

Sistemas de Objetos DistribuídosRevisão Java e Java ORBs p.1/26 Sistemas de Objetos Distribuídos Revisão Java e Java ORBs Francisco José da Silva e Silva Departamento de Informática da Universidade Federal do Maranhão Sistemas de Objetos DistribuídosRevisão Java e

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para

Leia mais

Algoritmos e Programação II

Algoritmos e Programação II Algoritmos e Programação II Agenda Desenvolver Software Objetos Classes Estudo de algumas Classes da API Estudo de algumas Classes da API Pacotes Criando nossa primeira classe Desenvolver SOFTWARE GAP

Leia mais

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 9 Tipos Abstratos de Dados (c) Dept. Informática - PUC-Rio 1 Tópicos Módulos e compilação em separado Tipo abstrato de dados Exemplo 1: TAD Ponto Exemplo 2: TAD Círculo Exemplo 3:

Leia mais

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2 BCC221 Programação Orientada a Objetos Prof. Marco Antonio M. Carvalho 2014/2 Site da disciplina: http://www.decom.ufop.br/marco/ Moodle: www.decom.ufop.br/moodle Lista de e- mails: bcc221- decom@googlegroups.com

Leia mais

15.053 26 de fevereiro de 2002

15.053 26 de fevereiro de 2002 15.053 26 de fevereiro de 2002 Análise de Sensibilidade apresentado como Perguntas Freqüentes Pontos ilustrados em um exemplo contínuo de fabricação de garrafas. Se o tempo permitir, também consideraremos

Leia mais

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

Desenvolvimento OO com Java Orientação a objetos básica Desenvolvimento OO com Java Orientação a objetos básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal

Leia mais

Interface gráfica em Java: Swing e SWT

Interface gráfica em Java: Swing e SWT Programação Orientada a Objetos Interface gráfica em Java: Swing e SWT UNIFEI 14/06/2012 Componentes gráficos em Java Os componentes gráficos em Java Componentes de desenho 2D e 3D Componentes de interface

Leia mais

Orientação a Objetos - Programação em C++

Orientação a Objetos - Programação em C++ OO- Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 17: Programação Visual ou Orientada a Objetos Gráficos (Formulários, Botões, Caixas de Texto etc) Exemplificado em Microsoft Visual

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto Lógica de Programação Profas. Simone Campos Camargo e Janete Ferreira Biazotto O curso Técnico em Informática É o profissional que desenvolve e opera sistemas, aplicações, interfaces gráficas; monta estruturas

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Orientação a Objetos e a Linguagem Java

Orientação a Objetos e a Linguagem Java Orientação a Objetos e a Linguagem Java Afrânio Assis afranio@gmail.com Novembro/2006 1 Reutilizição com Herança e Composição Novembro/2006 2 Introdução Separar as partes que podem mudar das partes que

Leia mais

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009 SOFTWARE DE CONTROLE DE USO DOS LABORATÓRIOS DO DEPARTAMENTO DE CIÊNCIAS AGRÁRIAS DO IFMG CAMPUS BAMBUÍ Alex Daniel CASTANHA ¹; Bruno FERREIRA ² ¹ Estudante do Curso Superior de Tecnologia em Análise e

Leia mais

Programação de Computadores I. Linguagem C Função

Programação de Computadores I. Linguagem C Função Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,

Leia mais

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ...

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ... Programação Na Web Linguagem Java Parte II Sintaxe António Gonçalves break com o nome do bloco Nome do bloco Termina o bloco class class Matrix Matrix { private private int[][] int[][] mat; mat; public

Leia mais

Programação Orientada a Objetos SANTOS, Rafael

Programação Orientada a Objetos SANTOS, Rafael Programação Orientada a Objetos SANTOS, Rafael É parte do software, e deve atender os requisitos do usuário Controla o hardware, incluindo periféricos de entrada e saída Usa um conjunto de comandos e regras:

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Aula 7 Programação Genética M.e Guylerme Velasco Programação Genética De que modo computadores podem resolver problemas, sem que tenham que ser explicitamente programados para isso?

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados Prof. Hugo Souza Após vermos uma breve contextualização sobre esquemas para bases dados e aprendermos

Leia mais

Encapsulamento de Dados

Encapsulamento de Dados Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Modificadores de Visibilidade Especificam

Leia mais

Banco de Dados I. Prof. Edson Thizon ethizon@bol.com.br

Banco de Dados I. Prof. Edson Thizon ethizon@bol.com.br Banco de Dados I Prof. Edson Thizon ethizon@bol.com.br Conceitos Dados Fatos conhecidos que podem ser registrados e que possuem significado implícito Banco de dados (BD) Conjunto de dados interrelacionados

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática : ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Um conjunto estruturado

Leia mais

5 Caso de estudo O cartão fidelidade

5 Caso de estudo O cartão fidelidade 5 Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante

Leia mais

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL BANCO DE DADOS GERENCIAL 1 AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS Um banco de dados é uma coleção de dados (ou informações) organizadas de forma lógica, e que

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Aula 2 Introdução Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno O que

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Conteúdo programático

Conteúdo programático Introdução à Linguagem C Conteúdo programático Introdução à Linguagem C Estrutura de Programas Variáveis, Constantes Operadores, Entrada e Saída de Dados Estruturas de Desvio Estrutura de Múltipla Escolha

Leia mais

Capítulo 4 - Polimorfismo

Capítulo 4 - Polimorfismo Capítulo 4 - Polimorfismo 1. POLIMORFISMO: VAMOS NOS ADAPTAR... 1 1.1 APRENDENDO A PREVER O FUTURO... 1 1.2 O QUE É POLIMORFISMO... 1 1.3 TIPOS DE POLIMORFISMO... 4 1.4 PERGUNTAS - EXERCÍCIO... 5 1. Polimorfismo:

Leia mais

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

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Leia mais

Aula 11: Desvios e Laços

Aula 11: Desvios e Laços Aula 11: Desvios e Laços Nesta aula explicaremos alguns comandos que podem alterar o fluxo dos seus programas em JavaScript. Você aprenderá a estrutura dos comandos de desvios e laços. Entenderá como funcionam

Leia mais

Desenvolvimento Web com Framework Demoiselle versão 1.0

Desenvolvimento Web com Framework Demoiselle versão 1.0 Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado

Leia mais

Padrões de Projeto. Factory Method

Padrões de Projeto. Factory Method Padrões de Projeto Padrões de Criação Factory Method Prof. Eduardo N F Zagari Prof. Ivan Granja Factory Method Também conhecido como Construtor Virtual Em muitas aplicações OO, um objeto cliente precisa

Leia mais

MODELAGENS. Modelagem Estratégica

MODELAGENS. Modelagem Estratégica Material adicional: MODELAGENS livro Modelagem de Negócio... Modelagem Estratégica A modelagem estratégica destina-se à compreensão do cenário empresarial desde o entendimento da razão de ser da organização

Leia mais

Programação com Acesso a BD. Programação com OO Acesso em Java

Programação com Acesso a BD. Programação com OO Acesso em Java Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

Adriana da Silva Santi Coord. Pedagógica de Matemática SMED - Abril/2015

Adriana da Silva Santi Coord. Pedagógica de Matemática SMED - Abril/2015 GEOMETRIA Adriana da Silva Santi Coord. Pedagógica de Matemática SMED - Abril/2015 O MATERIAL COMO SUPORTE DO PENSAMENTO Muita gente usa o material na sala de aula como se a Geometria estivesse no material.

Leia mais

Prof. Me. Marcos Echevarria

Prof. Me. Marcos Echevarria Prof. Me. Marcos Echevarria JUnit é um framework, open-source, que auxilia a criação e execução de testes unitários em classes Java. Engenharia de Software 2 JUnit facilita a criação de testes automatizados,

Leia mais

Reuso com Herança a e Composiçã

Reuso com Herança a e Composiçã Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:

Leia mais

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this. Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +

Leia mais

Lista de Exercícios Nro. 1 Programação Orientada a Objetos - SCC204

Lista de Exercícios Nro. 1 Programação Orientada a Objetos - SCC204 Lista de Exercícios Nro. 1 Programação Orientada a Objetos - SCC204 Exercício 1: Descreva algumas diferenças básicas entre programação estruturada e programação orientada a objetos. Exercício 2: Para que

Leia mais

JAVA Express com Lógica. Subtítulo

JAVA Express com Lógica. Subtítulo JAVA Express com Lógica Subtítulo Sobre a APTECH A Aptech é uma instituição global, modelo em capacitação profissional, que dispõe de diversos cursos com objetivo de preparar seus alunos para carreiras

Leia mais

Sobre o Visual C++ 2010

Sobre o Visual C++ 2010 O Visual Studio é um pacote de programas da Microsoft para desenvolvimento de software, suportando diversas linguagens como C#, C++, C, Java, Visual Basic, etc. Nesta série de tutoriais vou focar apenas

Leia mais

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing Docente (Teóricas): Eng.º Vitor M. N. Fernandes Web: http://www.vmnf.net/ipam Mail: vmnf@yahoo.com Aula 10 Sumário Relacionamentos entre

Leia mais

Análise da Base Nacional Comum Curricular de Matemática. Revisado por Phil Daro, USA Common Core Standards

Análise da Base Nacional Comum Curricular de Matemática. Revisado por Phil Daro, USA Common Core Standards Análise da Base Nacional Comum Curricular de Matemática Revisado por Phil Daro, USA Common Core Standards Complementando a Versão Muitas características excelentes Estrutura de tabela é muito útil Perspectiva

Leia mais

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona alcides.pamplona@gmail.com. Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona Linguagem de Programação CESBD 2010 Parte 2 Alcides Pamplona alcides.pamplona@gmail.com Tópicos API JDBC Utilizando JDBC Statement PreparedStatement Controle de Transação Mapeamento Objeto-Relacional

Leia mais

Revisão OO Básico. Orientação a Objetos em Java

Revisão OO Básico. Orientação a Objetos em Java Revisão OO Básico Orientação a Objetos em Java Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Nomenclatura A unidade básica de programação em linguagens orientadas a objetos é a

Leia mais

Programação Java III. Prof. Vinicius Rosalen

Programação Java III. Prof. Vinicius Rosalen Programação Java III Prof. Vinicius Rosalen Parte I Reuso / reutilização Para entregar software de qualidade em menos tempo, é preciso reutilizar; Reuso é uma das principais vantagens anunciadas pela Orientação

Leia mais

Programação para a Plataforma Android Aula 17. Broadcasts

Programação para a Plataforma Android Aula 17. Broadcasts Programação para a Plataforma Android Aula 17 Broadcasts O que são eventos de difusão? Como capturar eventos de chamadas telefônicas? Como verificar o estado da bateria? Como implementar receptores de

Leia mais

GEOMETRIA. sólidos geométricos, regiões planas e contornos PRISMAS SÓLIDOS GEOMÉTRICOS REGIÕES PLANAS CONTORNOS

GEOMETRIA. sólidos geométricos, regiões planas e contornos PRISMAS SÓLIDOS GEOMÉTRICOS REGIÕES PLANAS CONTORNOS PRISMAS Os prismas são sólidos geométricos muito utilizados na construção civil e indústria. PRISMAS base Os poliedros representados a seguir são denominados prismas. face lateral base Nesses prismas,

Leia mais

(Aula 17) Threads em Java

(Aula 17) Threads em Java (Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend

Leia mais

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

Universidade Federal de Goiás Campus Catalão Departamento de Matemática Universidade Federal de Goiás Campus Catalão Departamento de Matemática Disciplina: Álgebra Linear Professor: André Luiz Galdino Aluno(a): 4 a Lista de Exercícios 1. Podemos entender transformações lineares

Leia mais

(ou seja, boas praticas de programação orientada a objetos devem ser empregadas mesmo se não foram explicitamente solicitadas)

(ou seja, boas praticas de programação orientada a objetos devem ser empregadas mesmo se não foram explicitamente solicitadas) PC-2 / LP-2 2009/2 Lista 2 Prof. Alexandre Sztajnberg Em todos os exercícios a(o) aluna(o) deve, além de atender aos requisitos enunciados, utilizar os conceitos e características de orientação a objetos

Leia mais

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS alberto@ufs.br

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS alberto@ufs.br Um Exemplo de Refatoração Prof. Alberto Costa Neto DComp/UFS alberto@ufs.br Exemplo Programa para calcular e imprimir o valor devido por um cliente de uma vídeo locadora Filme códigopreço:int 1 * * 1 Locação

Leia mais

ÁREA DO PROFESSOR (TUTOR)

ÁREA DO PROFESSOR (TUTOR) ÁREA DO PROFESSOR (TUTOR) O MOODLE (Modular Object Oriented Dynamic Learning Environment) é um Ambiente Virtual de Ensino-Aprendizagem (AVEA) de código aberto, livre e gratuito que se mantém em desenvolvimento

Leia mais

BALANÇO PATRIMONIAL AMBIENTAL - EXERCÍCIO COMENTADO Prof Alan

BALANÇO PATRIMONIAL AMBIENTAL - EXERCÍCIO COMENTADO Prof Alan FACULDADE EVANGÉLICA CIÊNCIAS CONTÁBEIS DISCIPLINA: CONTABILIDADE AMBIENTAL E SOCIAL TURMA: 3º, 4º e 5º PERÍODOS BALANÇO PATRIMONIAL AMBIENTAL - EXERCÍCIO COMENTADO Prof Alan Considere os fatos contábeis

Leia mais

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. 1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto

Leia mais

Porquê PADRÕES? - Exemplo

Porquê PADRÕES? - Exemplo Porquê PADRÕES? - Exemplo Problema: extrair informação de um sistema CAD/CAM para um sistema pericial Sistema pericial controla a produção de uma peça Sistema pericial tem vida mais longa do que CAD/CAM

Leia mais

Introdução à Programação de Computadores Parte I

Introdução à Programação de Computadores Parte I Introdução à Programação de Computadores Parte I Prof. Dr. Edson Pimentel Centro de Matemática, Computação e Cognição Objetivos Compreender os componentes básicos de um programa... Objetivos Bacharelado

Leia mais

Treinamento sobre Progress Report.

Treinamento sobre Progress Report. Treinamento sobre Progress Report. Objetivo O foco aqui é trabalhar o desenvolvimento pessoal de cada aluno. O instrutor irá analisar cada um e pensar em suas dificuldades e barreiras de aprendizado e,

Leia mais