PADRÕES DE PROJETO. Prof.: Jean Carlo Mendes

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

Download "PADRÕES DE PROJETO. Prof.: Jean Carlo Mendes carlomendes@yahoo.com.br http://www.jeancarlomendes.com.br"

Transcrição

1 PADRÕES DE PROJETO Prof.: Jean Carlo Mendes

2 Implementação Padrões Factory Vamos utilizar o exemplo do livro Head First! Design Patterns e implementá-lo em Java...

3 Implementação Padrões Factory Vamos construir um sistema para uma pizzaria. O sensato é começar com algo como: Pizza orderpizza () { Pizza pizza = new Pizza (); pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza;

4 Implementação Padrões Factory Mas, obviamente a pizzaria deve ter vários sabores de pizza, então precisamos de construir um código para permitir a escolha da Pizza para só então prepará-la...

5 Pizza orderpizza (String type) { Pizza pizza; if (type.equals( cheese )) { pizza = new CheesePizza(); O tipo de pizza é passado como parâmetro else if (type.equals( greek ) { pizza = new GreekPizza(); else if (type.equals( pepperoni )) { pizza = new PepperoniPizza(); Baseado no tipo de pizza a classe Concreta apropriada é instanciada pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; Uma vez criada a pizza, ela pode ser preparada. Cada subtipo de pizza sabe como se preparar.

6 Com o mercado de pizza competitivo, novos sabores devem ser criados. Alguns sabores podem desaparecer, devido a baixa procura. Nos dois casos, temos que alterar nosso código para poder fornecer os sabores adequados...

7 Pizza orderpizza (String type) { Pizza pizza; if (type.equals( cheese )) { pizza = new CheesePizza(); else if (type.equals( greek )) { pizza = new GreekPizza(); else if (type.equals( clam )){ pizza = new ClamPizza(); else if (type.equals( veggie )){ pizza = new VeggiePizza(); else if (type.equals( pepperoni )) { pizza = new PepperoniPizza(); Esta parte do código vai sofrer alterações constantemente! pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; Esta parte do código vai fica estática por muito tempo...

8 Fica adicionando classes concretas e decidindo qual delas instanciar, vai deixar o código difícil de manter. Como sabemos qual parte do código está variando, podemos então tentar fazer um encapsulamento! Por que então não movemos o código de criação das pízzas para outro local? Este local seria um local de criação de pizzas (estamos começando a criar nossa fábrica)...

9 Pizza orderpizza (String type) { // Retiramos então o código daqui... pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza;

10 Vamos agora criar um objeto que será o responsável pela criação das pizza. A fábrica irá lidar com os detalhes de criação da pizza, vamos chamá-lo de SimplePizzaFactory. Com esta fábrica criada, nosso método orderpizza() se tornará um cliente dela. Toda vez que orderpizza() precisar de uma pizza, ele pedirá à fábrica a sua criação...

11 public class SimplePizzaFactory { public Pizza createpizza(string type){ Pizza pizza = null; if(type.equals( cheese )){ Este será o método usado pelos clientes quando quiserem a criação de uma pizza = new CheesePizza(); pizza! else if(type.equals( pepperoni )){ pizza = new PepperoniPizza(); else if(type.equals( clam )){ pizza = new ClamPizza(); else if(type.equals( veggie )){ pizza = new VeggiePizza(); return pizza

12 Ao ver o código nos perguntamos: Não ficou a mesma coisa, só em outro lugar?? A resposta é simples: Lembremos que o SimplePizzaFactory poderá ter muitos clientes (só vimos o orderpizza), como por exemplo, pizzashopmenu, ou qualquer outro. Nestes casos estes clientes precisam apenas conhecer uma coisa: A chamada ao método criarpizza!

13 Agora podemos voltar ao nosso código da classe PizzaStore e fazer os ajustes... (Lembrem daquele código de orderpizza de onde tiramos a criação das pizzas...vamos voltar a ele..)

14 public class PizzaStore { SimplePizzaFactory factory; public PizzaStore (SimplePizzaFactory factory) { this.factory = factory; public Pizza orderpizza (String type) { Pizza pizza; pizza = factory.createpizza(type); pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; orderpizza(), agora usa a fábrica para solicitar a criação da pizza, fornecendo o tipo como parâmetro

15

16 O próximo passo agora é permitir que franquias de nossa pizzaria possam fazer as pizzas com os estilos regionais delas... Uma pizza mais crocante em NY e com mais queijo em Chicago por exemplo. Uma abordagem possível é criar fábricas diferentes..., uma cada região

17

18 A abordagem anterior funciona bem...ter uma fábrica para cada região, porem, trouxe problemas. Cada fábrica estava fabricando as pizzas à sua maneira. Umas assando demais, outras usando caixas de embalagem de qualidade ruim... A solução: ter maior controle sobre o processo de criação, porém, garantindo a flexibilidade... Para isto vamos voltar o método createpizza() para dentro de PizzaStory, porém, desta vez ele será abstrato.. à partir dai, criamos subclasses para cada estilo regional...

19

20 Agora precisaremos das subclasses regionais Notem que cada sublclasse sobrescreve o createpizza(); Mas o orderpizza() é o mesmo...

21 Vamos ver o exemplo de código...

22

23 Com alguns ajustes em nossa Classe PizzaStore, podemos iniciar a declaração de nossa Fábrica (Factory Method)...

24

25 O Factory Method manipula a criação dos objetos e o encapsula em uma subclasse. Isto desacopla o código de criação do código cliente

26 Quais seriam então os passos para comprar uma pizza? Precisamos de uma instância de PizzaStore, que pode ser uma instância de ChicagoPizzaStore ou NYPizzaStore. Com a instância apropriada, podemos fazer o pedido através do método orderpizza() passando como parâmetro o sabor desejado. Para criar as pizzas, o método createpizza() é chamado que é definido dentro das duas subclasses (ChicagoPizzaStore e NYPizzaStore)

27 O método orderpizza() não sabe qual tipo de pizza foi criado, mas ele sabe que é uma pizza e sabe prepara-la, assar, cortar, encaixotar... Logo, o mesmo passo a passo em código seria: PizzaStore nypizzastore = new NYPizzaStore(); Isto nos dá uma nova instância de NYPizzaStore Agora com a store, podemos fazer o pedido: nypizzastore.orderpizza( cheese ); O método orderpizza() então chama o método createpizza() Pizza pizza = createpizza( cheese ); Lembrando que o createpizza() que é nosso método fábrica, está na subclasse e neste caso, retorna uma NYCheesePizza

28 Finalmente nós temos uma pizza não preparada, então fazemos chamada a: pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box() Bom, agora só nos restar criar uma de nossas principais classes: Pizza!

29 public abstract class Pizza { String name; String dough; String sauce; ArrayList toppings = new ArrayList(); void prepare () { System.out.println( Preparing + name); System.out.println( Tossing dough + dough); System.out.println( Adding Sauce + sauce); System.out.println(Adding toppings ); for (int i = 0; i < toppings.size(); i++) { System.out.println( + toppings.get(i));...continua...

30 void bake() { System.out.println( Bake for 25 minutes at 350 degrees ); void cut () { System.out.println( Cutting the pizza into diagonal slices ) void box () { System.out.println( Place pizza in official PizzaStore box ) public String getname() { return name;

31 Agora nossas subclasses concretas... Public class NYStyleCheesePizza extends Pizza { public NYStyleCheesePizza () { name= NY Style Sauce and Cheese Pizza ; dough = Thin Crust Dough ; sauce = Marinara Sauce ; toppings.add( Grated Reggiano Cheese );

32 Agora nossas subclasses concretas... Public class ChicagoStyleCheesePizza extends Pizza { public ChicagoStyleCheesePizza () { name= Chicago Style Deep Dish Cheese Pizza ; dough = Extra Thick Crust Dough ; sauce = Plum Tomato Sauce ; toppings.add( Shredded Mozzarela Cheese ); void cut () { System.out.println( Cutting the pizza into square slices );

33 Public class PizzaTestDrive { public static void main (String [] args) { PizzaStore nystore = new NYPizzaStore(); PizzaStore chicagostore = new ChicagoPizzaStore(); Pizza pizza = nystore.orderpizza( cheese ); System.out.println( Você comprou uma + pizza.getname() + \n ); pizza = chicagostore.orderpizza( cheese ); System.out.println( Agora você comprou uma + pizza.getname() + \n );

34

35

36

37 Nossa primeira atividade. Implementar o código completo de nossa PizzaStore... Tomar como base os códigos do livro. Deverá ter ChicagoPizzaStore, NYPizzaStore, CaliforniaPizzaStore, LafaietePizzaStore... No minimo 4 sabores de pizza A classe pizzatestedrive deve ser implementada para testar o código... Data 16/05/2011

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

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

Sistemas de Apoio à Decisão

Sistemas de Apoio à Decisão Sistemas de Apoio à Decisão Processo de tomada de decisões baseia-se em informação toma em consideração objectivos toma em consideração conhecimento sobre o domínio. Modelar o processo de tomada de decisões

Leia mais

Abstract Factory Pattern

Abstract Factory Pattern Abstract Factory Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Comandar uma franquia não é bolinho Estava tudo muito bom com a franquia

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

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

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes Programação Orientada a Objetos e Java - Introdução Carlos Lopes POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em

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

Factory Method. Edeyson Andrade Gomes www.edeyson.com.br

Factory Method. Edeyson Andrade Gomes www.edeyson.com.br Factory Method Edeyson Andrade Gomes www.edeyson.com.br Agenda Resumo Quando Usar Participantes Colaborações Conseqüências Exemplo Estrutura Genérica Exercício 2 Resumo Ao invés do cliente instanciar objetos

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

Leia mais

9 Comandos condicionais

9 Comandos condicionais 9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em

Leia mais

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

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; um objeto; é definido; Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; class ClasseBase{ é instanciado; $objetobase = new ClasseBase; Caso queira,

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros

Leia mais

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos TUTORIAL Barra de LEDs Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Algoritmos e Programação II. Sobrecarga

Algoritmos e Programação II. Sobrecarga Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque

Leia mais

Visual Basic.NET Programação Orientada a Objetos Lista de Exercícios

Visual Basic.NET Programação Orientada a Objetos Lista de Exercícios Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco Visual Basic.NET Programação Orientada a Objetos Lista de Exercícios A lista de questões a seguir aborda a criação de

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

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

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos

Leia mais

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto

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

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP O PHP através da versão 5, veio desenvolvido com suporte a programação orientada a objetos. O que significa isso? Que a partir da versão 5 é possível criar bibliotecas

Leia mais

INF011 Padrões de Projeto. 02 Creational Patterns

INF011 Padrões de Projeto. 02 Creational Patterns INF011 Padrões de Projeto 02 Creational Patterns Sandro Santos Andrade sandroandrade@ifba.edu.br Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica

Leia mais

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

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus Programação Orientada a Objetos: Lista de exercícios #1 Bruno Góis Mateus 1 Contents Programação Orientada a Objetos (Bruno Góis Mateus ): Lista de exercícios #1 Classes e Instanciação 3 A classe Circle...............................................

Leia mais

Tratamento de Eventos

Tratamento de Eventos Tratamento de Eventos Prof. Marcelo Cohen 1. Visão Geral Para implementar a funcionalidade de uma interface gráfica, pode-se fazer uso de uma repetição sem fim: Faz algum processamento Verifica se o mouse

Leia mais

Herança. Alberto Costa Neto DComp - UFS

Herança. Alberto Costa Neto DComp - UFS Herança Alberto Costa Neto DComp - UFS 1 Motivação Vimos como se faz encapsulamento e a importância de fazê-lo... Contudo, também é possível fazer encapsulamento em algumas linguagens não OO O que mais

Leia mais

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface

Leia mais

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal. Geração de Código para Smallpascal a 1. Já estudamos como SableCC faz uso do design pattern visitor para construir compiladores modulares. Vimos também os principais componentes da máquina virtual Java

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Um jogo de preencher casas

Um jogo de preencher casas Um jogo de preencher casas 12 de Janeiro de 2015 Resumo Objetivos principais da aula de hoje: resolver um jogo com a ajuda de problemas de divisibilidade. Descrevemos nestas notas um jogo que estudamos

Leia mais

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame 6. Como aplicações gráficas funcionam em Java? Todas as aplicações gráficas em Java usam instâncias de classes existentes, que por serem parte da linguagem podem ser executadas em todas as versões de Java

Leia mais

Vetores. Professor Dr Francisco Isidro Massettto francisco.massetto@ufabc.edu.br

Vetores. Professor Dr Francisco Isidro Massettto francisco.massetto@ufabc.edu.br Professor Dr Francisco Isidro Massettto francisco.massetto@ufabc.edu.br Nem sempre os tipos básicos: (inteiro, real, caracter e lógico) são suficientes para implementar um algoritmo. Por exemplo: Considere

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/52 Herança revisão A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse pode

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

Tipos de Dado Abstrato: Listas, Filas e Pilhas

Tipos de Dado Abstrato: Listas, Filas e Pilhas Tipos de Dado Abstrato: Listas, Filas e Pilhas Estruturas de Dados Prof. Vilson Heck Junior Introdução Tradicionalmente conhecidos como Tipos de Dado Abstrato, são algumas Estruturas de Dados básicas e

Leia mais

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

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Aula 4 Estatística Conceitos básicos

Aula 4 Estatística Conceitos básicos Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a

Leia mais

OBJETIVO VISÃO GERAL SUAS ANOTAÇÕES

OBJETIVO VISÃO GERAL SUAS ANOTAÇÕES OBJETIVO Assegurar a satisfação do cliente no pós-venda, desenvolvendo um relacionamento duradouro entre o vendedor e o cliente, além de conseguir indicações através de um sistema de follow-up (acompanhamento).

Leia mais

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) Prova de Java 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) O programa consiste em uma aplicação que simula o comportamento de dois

Leia mais

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

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

Classes Abstratas e Interfaces

Classes Abstratas e Interfaces Java Básico Classes Abstratas e Interfaces Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Novembro/2005 Classe abstrata Recurso avançado da OO Não pode ser instanciada Deve ser instanciada

Leia mais

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario Projeto de sistemas em Java Algoritmos e Programação I Aula 25 Profa. Márcia Cristina Moraes mmoraes@inf.pucrs.br Profa. Sílvia M. W. Moraes silvia@inf.pucrs.br Agora que já estamos manipulando com mais

Leia mais

Trabalhando com menus e caixas de diálogos

Trabalhando com menus e caixas de diálogos Trabalhando com menus e caixas de diálogos Neste laboratório, você vai aprender: Criar menus para aplicativos Microsoft Windows Presentation Fundation (WPF) utilizando as classes Menu e MenuItem. Realizar

Leia mais

Noções sobre Objetos e Classes

Noções sobre Objetos e Classes Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão

Leia mais

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação Enzo Seraphim 1 Padrões de Operação

Leia mais

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

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código } Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII A ocorrência tamanho ASCII codificação de Huffman é um A Codificação método de compactação de Huffman caracteres (American e a variável codificação dos usado símbolos Standard para por cada muitas no Code

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

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

Java Threads. Introdução

Java Threads. Introdução Java Threads mleal@inf.puc-rio.br 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização

Leia mais

Top Guia In.Fra: Perguntas para fazer ao seu fornecedor de CFTV

Top Guia In.Fra: Perguntas para fazer ao seu fornecedor de CFTV Top Guia In.Fra: Perguntas para fazer ao seu fornecedor de CFTV 1ª Edição (v1.4) 1 Um projeto de segurança bem feito Até pouco tempo atrás o mercado de CFTV era dividido entre fabricantes de alto custo

Leia mais

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

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 3 Prof. ISVega Fevereiro de 2004 Estilo de Codificação CONTEÚDO 3.1 Regras

Leia mais

Especificação do Trabalho

Especificação do Trabalho Especificação do Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação, ligação,

Leia mais

Bancos de Dados: impossível viver sem eles...

Bancos de Dados: impossível viver sem eles... Bancos de Dados: impossível viver sem eles... Vanessa Braganholo vanessa@ic.uff.br Vocês já sabem programar... Problema: eu preciso calcular a média de uma turma de Estruturas de Dados II public static

Leia mais

Threads e Concorrência em Java (Material de Apoio)

Threads e Concorrência em Java (Material de Apoio) Introdução Threads e Concorrência em Java (Material de Apoio) Professor Lau Cheuk Lung http//www.inf.ufsc.br/~lau.lung INE-CTC-UFSC A maioria dos programas são escritos de modo seqüencial com um ponto

Leia mais

Estrutura Condicional em Java

Estrutura Condicional em Java Estrutura Condicional em Java Linguagem de Programação 1 O Java contém três tipos de instruções de seleção. A instrução if realiza uma ação se uma condição for verdadeira ou pula a ação se a condição for

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

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Programação Orientada a Objetos Na aula passada, vimos: Encapsulamento Programação Orientada

Leia mais

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados: O Paradigma Orientado a Objetos Paradigma e Programação Orientada a Objetos Prof. João Carlos Pinheiro jcpinheiro@ifma.edu.br 1 Não é um paradigma no sentido estrito: é uma subclassificacão do imperativo

Leia mais

Classes, Superclasses e Subclasses

Classes, Superclasses e Subclasses Herança Herança A idéia é criar novas Classes construindo-as sobre outras existentes Ao herdar de uma classe, reusamos (herdamos) seus métodos E podemos adicionar novos métodos e campos para adaptar a

Leia mais

Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I

Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento

Leia mais

Módulo 07 Características Avançadas de Classes

Módulo 07 Características Avançadas de Classes Módulo 07 Características Avançadas de Classes Última Atualização: 15/06/2010 1 Objetivos Descrever variáveis, métodos e iniciadores static Descrever a semântica do modificador final em classes, métodos

Leia mais

Tabelas vista de estrutura

Tabelas vista de estrutura Tabelas vista de estrutura A vista de estrutura permite definir a configuração dos dados Vamos adicionar os restantes campos à tabela carros, de acordo com o modelo de dados feito no papel 47 Tabelas vista

Leia mais

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs Interfaces Gráficas e Eventos - 1 Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs - Utilizar as classes JFrame, JButton, JLabel, ImageIcon,

Leia mais

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v2010.10

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v2010.10 Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v2010.10 Linha de Equipamentos MEC Desenvolvidos por: Maxwell Bohr Instrumentação Eletrônica Ltda. Rua Porto Alegre, 212 Londrina

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Usando o do-file editor Automatizando o Stata

Usando o do-file editor Automatizando o Stata Usando o do-file editor Automatizando o Stata 1 O QUE É O EDITOR DE DO-FILE O Stata vem com um editor de texto integrado, o do-file editor (editor de do-files, em português), que pode ser usado para executar

Leia mais

Leitura. Capítulo 7 (Prog. Orient. a Obj. usando Java - 4th Edition)

Leitura. Capítulo 7 (Prog. Orient. a Obj. usando Java - 4th Edition) QUALIDADE DE CÓDIGO Leitura Capítulo 7 (Prog. Orient. a Obj. usando Java - 4th Edition) Principais conceitos a serem abrangidos slide 3 Design baseado na responsabilidade Acoplamento Coesão Refatoração

Leia mais

TCC 00.174 Prof.: Leandro A. F. Fernandes www.ic.uff.br/~laffernandes. Conteúdo: Tipos Genéricos

TCC 00.174 Prof.: Leandro A. F. Fernandes www.ic.uff.br/~laffernandes. Conteúdo: Tipos Genéricos Programação de Computadores II TCC 00.174 Prof.: Leandro A. F. Fernandes www.ic.uff.br/~laffernandes Conteúdo: Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof.

Leia mais

PMBoK Comentários das Provas TRE-PR 2009

PMBoK Comentários das Provas TRE-PR 2009 PMBoK Comentários das Provas TRE-PR 2009 Comentário geral: As provas apresentaram grau de dificuldade médio. Não houve uma preocupação da banca em aprofundar os conceitos ou dificultar a interpretação

Leia mais

MÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIAS

MÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIAS MÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIS Como vimos no módulo 1, para que nós possamos extrair dos dados estatísticos de que dispomos a correta análise e interpretação, o primeiro passo deverá ser a correta

Leia mais

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos (DPADF 0063) Programação Orientada a Objetos (DPADF 0063) Aula 5 Herança Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Disciplina Técnicas de Modelagem

Disciplina Técnicas de Modelagem T É C N I C A 3 MODELAGEM CONCEITUAL GENERALIZAÇÃO/ESPECIALIZAÇÃO, AGREGAÇÃO E COMPOSIÇÃO Generalização/Especialização Herança é o termo em orientação a objetos que se refere à criação de novas classes

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado

Leia mais

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti http://ead.celsomasotti.com.br LÓGICA DE PROGRAMAÇÃO Professor Celso Masotti http://ead.celsomasotti.com.br Ano: 2015 1 HTML & PHP em Ambiente Web PARTE II Sumário I Decisão... 4 Operadores de Comparação... 6 II IF ELSEIF ELSE... 7

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 Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,

Leia mais

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

COMO CALCULAR A PERFORMANCE DOS FUNDOS DE INVESTIMENTOS - PARTE I

COMO CALCULAR A PERFORMANCE DOS FUNDOS DE INVESTIMENTOS - PARTE I COMO CALCULAR A PERFORMANCE DOS FUNDOS DE INVESTIMENTOS - PARTE I O que é o Índice de Sharpe? Como calcular o Índice de Sharpe? Revisão do conceito de risco. O desvio-padrão como medida de risco. Autor:

Leia mais

NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013

NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013 NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013 Dispõe sobre trabalho de compilação de informações contábeis. O CONSELHO FEDERAL DE CONTABILIDADE, no exercício de suas atribuições

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

Apêndice A Objetivos PEI

Apêndice A Objetivos PEI A Apêndice A Objetivos PEI Legenda: (A) = aluno; R+ = reforçador; E = esquerda; D = direita Sistema de Comunicação por Troca de Figuras (PECS) Objetivos - Amostra (A)luno: Local: Fase Fase I Ao ver e

Leia mais

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

Herança. Algoritmos e Programação II. Aula 5 Herança Algoritmos e Programação II Aula 5 Herança *Adaptado do material do Prof. Júlio Machado Herança Uma característica importante da programação orientada a objetos é permitir a criação de novas classes com

Leia mais

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com PROCESSOS Prof. Maicon A. Sartin mapsartin@gmail.com Cenários em Sistemas Multitarefas Um usuário pode executar diversas atividades simultâneas Música Editoração de texto Navegar na Internet Servidor pode

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

Realizando cálculos para o aparelho divisor (I)

Realizando cálculos para o aparelho divisor (I) Realizando cálculos para o aparelho divisor (I) A UU L AL A Você já estudou como fazer os cálculos para encontrar as principais medidas para a confecção de uma engrenagem cilíndrica de dentes retos. Vamos

Leia mais

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

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Tipos de dados Os programas manipulam dados, armazenando-os

Leia mais

Programação de Computadores e Robocode. http://www.lac.inpe.br/~rafael.santos

Programação de Computadores e Robocode. http://www.lac.inpe.br/~rafael.santos Programação de Computadores e Robocode 1 O que é Programação de Computadores? O que é um programa de computador? Quem escreve estes programas? Como são escritos? O que podemos fazer com estes programas?

Leia mais

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

PCS 3111 - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais PCS - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA EXERCÍCIO PROGRAMA

Leia mais

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL VERSÃO 359 U N I P A C K NOTA FISCAL ELETRÔNICA CONTENDO ITENS COM CFOP S DISTINTOS RIO DE JANEIRO 25 DE JULHO DE 2013 SUMÁRIO 1- INTRODUÇÃO... 03 2- MOTIVAÇÃO... 03

Leia mais

Casos de uso Objetivo:

Casos de uso Objetivo: Casos de uso Objetivo: Auxiliar a comunicação entre os analistas e o cliente. Descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário. O cliente deve ver no diagrama de

Leia mais

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9 Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através

Leia mais

Keeper of Knowledge. Capítulo 2 Classes em Java

Keeper of Knowledge. Capítulo 2 Classes em Java Capítulo 2 Classes em Java INTRODUÇÃO Uma classe é um conjunto de software que representa uma realidade qualquer, que pode ser representada por números e símbolos. Uma classe possui dados de um ou mais

Leia mais

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3) pg. 1/6 Material de Apoio 5 Herança Observe o código das classes Fatorial e Fibonacci apresentados abaixo. class Fatorial { class Fibonacci { private int n, res; private int n, res; public Fatorial( int

Leia mais