Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software

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

Download "Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software"

Transcrição

1 UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software Enzo Seraphim 1 Padrões de Responsabilidade A decomposição em classes e objetos distribui responsabilidades em cada objeto e método do sistema. Responsabilidades podem ser controladas usando encapsulamento e controle de acesso, definindo: interfaces para clientes de objetos (public) interfaces para clientes de classes (protected) dados e operações internas à classe (private) Design patterns utilizam esses recursos para ir além e oferecer controle mais preciso Controle distribuído em objetos específicos Controle centralizado em um único objeto Notificação e intermediação de requisições Padrões orientados a responsabilidades lidam com situações em que é preciso fugir da regra comum que a responsabilidade deve ser distribuída ao máximo: Singleton: centraliza a responsabilidade em uma única instância de uma classe Observer: desacopla um objeto do conhecimento de que outros objetos dependem dele Mediator: centraliza a responsabilidade em uma classe que determina como outros objetos interagem Proxy: assume a responsabilidade Chain of Responsibility: permite que uma requisição passe por uma corrente de objetos até encontrar um que a processe Flyweight: centraliza a responsabilidade em objetos compartilhados de alta granularidade 1.1 Objeto Único - Singleton "Garantir que uma classe só tenha uma única instância, e prover um ponto de acesso global a ela." [GoF] Algumas classes devem ter uma única instância. Deve existir exatamente um planeta terra, um print spooler, uma saída padrão e um gerenciador de janelas. O padrão singleton assegura que apenas um objeto da classe será criado e fornece um ponto onde este objeto é manipulado. A própria classe, através de seus métodos estáticos, criará sua instância. Problema Garantir que apenas um objeto exista, independente do número de requisições que receber para criá-lo. Como controlar (contar) o número de instâncias da classe? Como armazenar a(s) instância(s)? Como controlar ou impedir a construção normal? Se for possível usar new e um construtor para criar o objeto, há como limitar instâncias? Como definir o acesso à um número limitado de instâncias (no caso, uma apenas)? Como garantir que o sistema continuará funcionando se a classe participar de uma hierarquia de classes? Aplicações Um único banco de dados Um único acesso ao arquivo de log Um único objeto que representa um vídeo Uma única fachada (Façade pattern) Estrutura

2 Exemplo Vantagens Acesso central e extensível a recursos e objetos Pode ter subclasses* (o que seria impossível se fosse apenas usada uma classe com métodos estáticos) Desvantagens Qualidade da implementação depende da linguagem Difícil de testar (simulações dependem de instância extra) Implementação complicada em ambiente multithreaded e em ambiente distribuído Exemplo Java public class ContadorGlobal { private ContadorGlobal () { private static int numero = 1; private static ContadorGlobal instancia = new ContadorGlobal (); public static ContadorGlobal getinstancia() {return instancia; public static void incrementa () { numero++; public static int getnumero() {return numero; import java.io.*; public class Principal{ public static void main(string[] args) { ContadorGlobal c1, c2, c3; //c1 = new ContadorGlobal (); // nao compila! c2 = ContadorGlobal.getInstancia (); c3 = ContadorGlobal.getInstancia (); if (c2 == c3) { System.out.println("c2 e c3 são mesmo objeto!"); c2.incrementa (); System.out.println("c2 = " + c2.getnumero ()); System.out.println("c3 = " + c3.getnumero ()); c3.incrementa (); System.out.println("c2 = " + c2.getnumero ()); System.out.println("c3 = " + c3.getnumero ()); 1.2 Observador - Observer "Definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados automaticamente." [GoF] Problema cadastra Observador Sujeito notifica Como garantir que objetos que dependem de outro objeto fiquem atualizados com as mudanças? Como fazer com que os observadores tomem conhecimento do objeto de interesse? Como fazer com que o objeto de interesse atualize os observadores quando seu estado mudar?

3 Estrutura Os dados podem ser modificados por um cliente ou por um dos observadores. Evitar o acoplamento entre os observadores é a função do padrão Observador. Ele define um objeto sujeito e vários observadores. Quando o sujeito é modificado, os observadores são notificados. Os observadores são previamente registrados com o sujeito. Exemplo Consequências Há um acoplamento entre o sujeito e seus observadores; Os observadores podem ser adicionados e removidos em execução. public abstract class Encargo { abstract public void atualizar(double valor); public class Inss extends Encargo { private double valorinss=0d; public void atualizar(double valor) { valorinss = valor * 0.1; public double getvalorinss() { return valorinss; public class Pis extends Encargo { private double valorpis=0d; public void atualizar(double valor) { valorpis = valor * 0.03; public double getvalorpis() {return valorpis; public abstract class Trabalhista { private List<Encargo> encargos = new ArrayList<Encargo>(); protected void notificar(double valor) { Iterator<Encargo> it = this.iteratorencargo(); for(int n=0; n < this.sizeofencargo(); n++){ it.next().atualizar(valor); public class Folha extends Trabalhista { private double SalContrib = 0;

4 public double getsalcontrib() { return SalContrib; public void setsalcontrib(double salcontrib) { SalContrib = salcontrib; notificar(salcontrib); public class App { public static void main(string args[]){ Folha f = new Folha(); Pis p = new Pis(); f.addencargo(p); Inss i = new Inss(); f.addencargo(i); f.setsalcontrib(1000); System.out.println("pis=" + p.getvalorpis()); System.out.println("inss=" + i.getvalorinss()); 1.3 Mediador - Mediator "Definir um objeto que encapsula como um conjunto de objetos interagem. Mediator promove acoplamento fraco ao manter objetos que não se referem um ao outro explicitamente, permitindo variar sua interação independentemente." [GoF] Estrutura Um objeto Mediador deve encapsular toda a comunicação entre um grupo de objetos Cada objeto participante conhece o mediador, mas ignora a existência dos outros objetos O mediador conhece cada um dos objetos participantes A interface do Mediador é usada pelos colaboradores para iniciar a comunicação e receber notificações: O mediador recebe requisições dos remetentes O mediador repassa as requisições aos destinatários Toda a política de comunicação é determinada pelo mediador (geralmente através de uma implementação concreta do mediador) Problema

5 Como permitir que um grupo de objetos se comunique entre si sem que haja acoplamento entre eles? Como remover o forte acoplamento presente em relacionamentos muitos para muitos? Como permitir que novos participantes sejam ligados ao grupo facilmente? Aplicação Use o padrão mediador o relacionamento de associação for bidirecional e um método de cada classes devem ser executado, não importando a cardinalidade; Exemplo Conseqüências Desacoplamento colegas; Evita relacionamento cíclico nas linguagens de programação; Abstrai os relacionamentos entre colegas no mediador. Exemplo Java abstract class Mediador { abstract public void OperacaoMediada(); abstract class Colaborador{ private Mediador mediador; public void chamaroperacao() { mediador.operacaomediada(); ; public Mediador getmediador () {return mediador; public void setmediador (Mediador m) { mediador = m; class ColaboradorGato extends Colaborador { private int velocidade = 0; public void PersegueRato() { velocidade = velocidade + 5; public int getvelocidade() { return velocidade; class ColaboradorRato extends Colaborador { private int velocidade = 0; public void FogeGato() { velocidade = velocidade + 6; public int getvelocidade() { return velocidade; class MediadorGatoRato extends Mediador { private ColaboradorGato gato; private ColaboradorRato rato; public ColaboradorGato getgato() { return gato; public void setgato(colaboradorgato g) { gato = g; public ColaboradorRato getrato() {return rato;

6 public void setrato(colaboradorrato r) { rato = r; public void OperacaoMediada(){ if (gato!=null) gato.perseguerato(); if (rato!=null) rato.fogegato(); public class Principal { public static void main(string[] args) { ColaboradorGato g = new ColaboradorGato(); ColaboradorRato r = new ColaboradorRato(); MediadorGatoRato m = new MediadorGatoRato(); m.setgato(g); m.setrato(r); r.setmediador(m); g.setmediador(m); System.out.println("velocidade gato = " + g.getvelocidade() ); System.out.println("velocidade rato = " + r.getvelocidade() ); r.chamaroperacao(); System.out.println("velocidade gato = " + g.getvelocidade() ); System.out.println("velocidade rato = " + r.getvelocidade() ); g.chamaroperacao(); System.out.println("velocidade gato = " + g.getvelocidade() ); System.out.println("velocidade rato = " + r.getvelocidade() ); 1.4 Procurador - Proxy "Prover um substituto ou ponto através do qual um objeto possa controlar o acesso a outro." [GoF] Estrutura Cliente usa intermediário em vez de sujeito real Intermediário suporta a mesma interface que sujeito real Intermediário contém uma referência para o sujeito real e repassa chamadas, possivelmente, acrescentando informações ou filtrando dados no processo Exemplo

7 Aplicabilidade um procurador pode representar um objeto que está em outra máquina. As chamadas são enviadas pela rede ao objeto remoto; um procurador pode controlar o acesso a um outro objeto, proibindo operações críticas. Vantagens Transparência: mesma sintaxe usada na comunicação entre o cliente e sujeito real é usada no proxy Permite o tratamento inteligente dos dados no cliente Permite maior eficiência com caching no cliente Exemplo Java public abstract class Banco{ public abstract boolean emprestimo(float v); public class Brasil extends Banco{ private Central central = null; public void setcentral(central v) { central=v; public Central getcentral() { return central; public boolean emprestimo(float v){ return central.emprestimo(v); public class Central extends Banco{ private float dinheiro; public float getdinheiro() { return dinheiro; public void setdinheiro(float v) { dinheiro = v; public boolean emprestimo(float v){ if(dinheiro >= v){ dinheiro -= v; return true; else return false; public class Empresa{ private Banco banco = null; public void setbanco(banco v) { banco = v; public Banco getbanco() { return banco; public boolean pediremprestimo(int i){ if(banco!= null) return banco.emprestimo(i); return false; public class App { public static void main(string[] args) { Central c = new Central(); c.setdinheiro(100); Brasil b = new Brasil(); b.setcentral(c); Empresa e = new Empresa(); e.setbanco(b); e.pediremprestimo(50); System.out.println("saldo BC = " + c.getdinheiro()); 1.5 Cadeia de Responsabilidades - Chain of Responsibilities "Evita acoplar o remetente de uma requisição ao seu destinatário ao dar a mais de um objeto a chance de servir a requisição. Compõe os objetos em cascata e passa a requisição pela corrente até que um objeto a sirva." [GoF] Aplicabilidade Quando vários objetos podem responder um requerimento, mas a decisão de quem responde só pode ser resolvida em execução. Estrutura

8 Exemplo Exemplo de Objetos Conseqüências o acoplamento é reduzido. O emissor do requerimento e o receptor não se conhecem; a responsabilidade por responder a um requerimento pode ser modificada em execução; pode ser que ninguém na cadeia de objetos possa responder a um requerimento insegura. Exemplo Java abstract public class Notas { protected Notas prox = null; protected static int ultimaserie; protected int serie; public abstract int soma(); public int getserie() { return serie; public static Notas criarnotas(int v) { Notas cab=null; if((int)v/10>=1){ cab=new Nota10(); v-=10; else if((int)v/5>=1){ cab=new Nota5(); v-=5; else if((int)v/1>=1){ cab.prox=new Nota1(); v-=1; Notas aux=cab; while(v>0){ if((int)v/10>=1){ aux.prox=new Nota10();

9 v-=10; else if((int)v/5>=1){ aux.prox=new Nota5(); v-=5; else{ aux.prox=new Nota1(); v-=1; aux = aux.prox; return cab; public class Nota10 extends Notas{ public Nota10(){ ultimaserie++; serie=ultimaserie; public int soma() { int soma = 10; if(prox!=null) soma += prox.soma(); return soma; public class Nota5 extends Notas{ public Nota5(){ ultimaserie++; serie=ultimaserie; public int soma() { int soma = 5; if(prox!=null) soma += prox.soma(); return soma; public class Nota1 extends Notas{ public Nota1(){ ultimaserie++; serie=ultimaserie; public int soma() { int soma = 1; if(prox!=null) soma += prox.soma(); return soma; public class Cheque { private Notas notas=null; private int valor=0; public Cheque(){ public int getvalor(){ return valor; public void setvalor(int v){ valor=v; public void desconta(){ notas=notas.criarnotas(valor); public int somanotas(){ return notas.soma(); import java.util.*; public class App{ public static void main(string[] args){ Scanner in = new Scanner (System.in); Cheque c = new Cheque(); System.out.println("digite valor cheque:"); c.setvalor( in.nextint() ); c.desconta(); System.out.println("soma das notas: " + c.somanotas()); 1.6 Peso Mosca - Flyweight "Usar compartilhamento para suportar grandes quantidades de objetos refinados eficientemente." [GoF]

10 Estrutura Um peso-mosca é um objeto compartilhado que pode ser usado em múltiplos contextos simultâneamente. O estado intrínseco consiste de informações independentes do contexto do pesomosca. O estado extrínseco depende e varia com o contexto do peso-mosca e, portanto, não pode ser compartilhado. A classe Flyweight define uma interface de entrada para os Flyweights. Pode receber e atuar sobre estados extrínsecos. A classe Concreto implementa a interface do Flyweight e adiciona estados intrínsecos se existirem. Essa classe precisa ser compartilhada e qualquer estado que ela armazene precisa ser intrínseco. A classe ConcretoNaoCompartilhado são objetos não compartilhados. Nem todas as subclasses que implementam Flyweight precisam ser compartilhadas. A classe FabricaFlyweight verifica se ainda não criada a referência antes de cria-lo, caso contrário retorna a referência que já existe. A classe Cliente armazena referencias para os objetos dos estados extrínsecos do FlyWeight. Exemplo Aplicabilidade Quando o tamanho do conjunto de objetos for significativamente menor que a quantidade de vezes em que eles são usados na aplicação(custos de armazenamento críticos). Quando objetos podem ser usados em diferentes contextos ao mesmo tempo (agindo sempre como um objeto indepentente). Quando a maior parte do estado do objeto possa ser tornado extrínseco. Quenado grandes grupos de objetos podem ser substituídos por poucos objetos compartilhados depois de se separar o estado extrínseco do intrínseco. Quando a aplicação não depende da identidade dos objetos. Quando não usar Quando o estado dos objetos não for imutável (é preciso passar o estado mutável como parâmetro e isto pode ser impraticável se o estado consistir de vários objetos).

11 Quando for necessário elaborar um algoritmo ou algo complicado para separar objetos mutáveis de imutáveis Conseqüências Podem ser introduzidos custos em termos de eficiência devido à transferência, procura e/ou computação do estado extrínseco, compensados pela economia de memória. A economia de memória resulta de vários factores: redução do número de instâncias; quantidade de estado intrínseco se o estado extrínseco é calculado ou armazenado. Exemplo: Compartilhar objetos que representam os caracteres no documento: Estado intrínseco - Código dos caracteres Estado extrínseco - Posicionamento dos caracteres; O padrão Flyweight permite-nos utilizar um objeto para cada caráter sem utilizar uma grande quantidade de objetos. Caracteres idênticos em posições diferentes do texto utilizam o mesmo objeto. Exemplo Java public abstract class Caracter { public abstract void setsimbolo(char v); public abstract char getsimbolo(); public class Letra extends Caracter{ private char letra; public char getsimbolo() { return letra; public void setsimbolo(char simbolo) { this.letra = simbolo; public class Pontuacao extends Caracter { private char pontuacao; public char getsimbolo() { return pontuacao; public void setsimbolo(char simbolo) { this.pontuacao = simbolo; public class Alfabeto { private List<Caracter> caracteres = new ArrayList<Caracter>(); public Caracter getcaracter(char c){ Caracter caract=null; char low = Character.toLowerCase(c); if((low >= 'a') && (low <= 'z')){ Iterator<Caracter> it = iteratorcaracter(); while(it.hasnext()){ Caracter ca = it.next(); if(ca.getsimbolo()==c){ caract = ca; break; if(caract==null){ Letra l = new Letra(); l.setsimbolo(c); caracteres.add(l); caract = l; else{ Pontuacao p = new Pontuacao(); p.setsimbolo(c); caracteres.add(p); caract = p; return caract; public int sizeofcaracter(){ return caracteres.size(); public Iterator<Caracter> iteratorcaracter(){ return caracteres.iterator();

12 public class Posicao { private int paragrafo; private int sentenca; private static Alfabeto alfabeto = new Alfabeto(); private Caracter caracter; public Posicao(int par, int sen, char c){ paragrafo = par; sentenca = sen; caracter = alfabeto.getcaracter(c); public int getparagrafo() { return paragrafo; public int getsentenca() { return sentenca; public static Alfabeto getalfabeto() { eturn alfabeto; public class App { public static void main(string args[]) { String hino = "Ouviram do Ipiranga as margens plácidas "... + "Pátria amada, Brasil!"; int i = 0; int par=0; int sen=0; Posicao pos[] = new Posicao[hino.length()]; for (i = 0; i < hino.length(); i++) { char c = hino.charat(i); pos[i] = new Posicao(par, sen, c); if(c == ' ') sen++; if(c == '.') par++; System.out.println("total letras=" + hino.length()); System.out.println("total simbolos=" + Posicao.getAlfabeto().sizeOfCaracter()); System.out.println("IMPRIMIR SIMBOLOS"); Iterator<Caracter> it1 = Posicao.getAlfabeto().iteratorCaracter(); while (it1.hasnext()) { System.out.print("[" + it1.next().getsimbolo() + "]"); i++; if (i % 10 == 0) { System.out.println();

Análise de Programação

Análise de Programação Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou

Leia mais

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software Enzo Seraphim 1 Padrões de Construção A maneira

Leia mais

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para

Leia mais

Vetores Unimensionais

Vetores Unimensionais Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Imprimir elementos de um

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 05 Padrões GoF (Singleton e Iterator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype

Leia mais

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

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador) Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

Programação Orientada a Objetos. Padrões Estruturais

Programação Orientada a Objetos. Padrões Estruturais Programação Orientada a Objetos Padrões Estruturais Cristiano Lehrer, M.Sc. Classificação dos Padrões de Projeto Propósito o que o padrão faz: Padrões de criação: abstraem o processo de criação de objetos

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

Leia mais

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

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

Leia mais

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 03 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Representação de Algoritmos em Pseudocódigo: Tipos de Dados;

Leia mais

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 11 Padrões GoF (Bridge e Decorator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

Leia mais

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

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Vetores Unimensionais

Vetores Unimensionais Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Imprimir elementos de um

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos

Leia mais

Relacionamentos entre objetos

Relacionamentos entre objetos Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores t e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos

Leia mais

Programação Estruturada e Orientada a Objetos

Programação Estruturada e Orientada a Objetos INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

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

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;

Leia mais

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

Vetores Unimensionais

Vetores Unimensionais Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Acessar elementos de um

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 08 Padrões GoF (Observer e Builder) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

Leia mais

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

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

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

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça Introdução Universidade Federal de Uberlândia Programação Orientada a Objetos Prof. Fabiano Dorça Introdução Definições iniciais: classe, objeto, métodos, atributos. Introdução Ao escrever um programa

Leia mais

Padrões de Projeto de Software

Padrões de Projeto de Software Padrões de Projeto de Software Flyweight Paulo Gomide Departamento de Ciência da Computação Universidade de Itaúna Sumary Flyweight Definição Usa compartilhamento para suportar uma grande quantidade de

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-5 Estruturas de Decisão e Controle. Arrays em Java Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Mas o que é mesmo Padrão de Projeto?

Mas o que é mesmo Padrão de Projeto? Mas o que é mesmo Padrão de Projeto? Um Padrão de Projeto descreve uma solução comprovada para um problema recorrente e conhecido no desenvolvimento de software orientado a objetos. Mas afinal, porque

Leia mais

Lógica de Programação. Lógica de Programação com Java

Lógica de Programação. Lógica de Programação com Java Lógica de Programação Lógica de Programação com Java Sumário Lógica de programação 1. Algoritmos 2. Comentários no código 3. Tipos de dados 4. Constantes e Variáveis 5. O que devemos saber para começar

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

Leia mais

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

PADRÕES DE PROJETO DE SOFTWARE

PADRÕES DE PROJETO DE SOFTWARE Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação PADRÕES DE PROJETO DE SOFTWARE SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre

Leia mais

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

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

UNIFEI Disciplina Professor

UNIFEI Disciplina Professor UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO02 Enganharia de Software II Enzo Seraphim Nota de aula de Java Encapsulamento

Leia mais

Programação Orientada a Objetos Relacionamentos entre classes

Programação Orientada a Objetos Relacionamentos entre classes Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO

Leia mais

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

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 03 Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

Tópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico

Tópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico Reuso de Software Aula 03 Tópicos da Aula POO e Padrões de Projetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 12 Março 2012 Programação orientada a objetos Reuso de

Leia mais

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes. JAVA ENCAPSULAMENTO Na linguagem de programação Java, a classe é o alicerce para o encapsulamento, o qual é definido como uma técnica que faz com que os atributos da classe permaneçam ocultos, pois desta

Leia mais

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

1) Responda de acordo com os conceitos de orientação a objetos (0,5). Avalição II (Teórica) 22/06/2017 Disciplina Linguagem de Programação II Prof. Wagner, dos Santos C. de Jesus Curso Engenharia da Computação Questões Solução da Avaliação 1) Responda de acordo com os conceitos

Leia mais

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

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO

Leia mais

// quando o estado do Sujeito muda

// quando o estado do Sujeito muda Padrão Observer No padrão Observer temos dois objectos: um, designado Sujeito (Subject) que possui uma dada informação que pode variar ao longo da execução do programa, e outro, designado Observador (Observer)

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

Instituto Superior de Engenharia de Lisboa

Instituto Superior de Engenharia de Lisboa Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 10 Padrões GoF (Protoype e Façade) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

Leia mais

Atribuições: Valores, Ponteiros e Referências

Atribuições: Valores, Ponteiros e Referências Atribuições: Valores, Ponteiros e Referências Estruturas de Dados Prof. Vilson Heck Junior Sobre Variáveis Aprendemos, em introdução à programação, que possuem 3 partes mais importantes: Nome; Tipo de

Leia mais

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

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?

Leia mais

Programação Orientada a Objetos II

Programação Orientada a Objetos II Programação Orientada a Objetos II Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Introdução ao Desenvolvimento

Leia mais

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

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz LÓGICA DE PROGRAMAÇÃO (JAVA) String String é uma classe contida no pacote java.lang e que descende da classe java.lang.object. De forma conceitual podemos dizer que é uma sequência de caracteres usada

Leia mais

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){ UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------

Leia mais

// quando o estado do Sujeito muda

// quando o estado do Sujeito muda Padrão Observer No padrão Observer temos dois objectos: um, designado Sujeito (Subject) que possui uma dada informação que pode variar ao longo da execução do programa, e outro, designado Observador (Observer)

Leia mais

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha.

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha. 1 Estrutura de Dados II Pilha e Fila Pilha em C Definir o registro que representará cada elemento da pilha. No início a pilha estará vazia, logo o ponteiro topo tem o valor NULL. As operações de inserção

Leia mais

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

Seleção Múltipla Laços (while, do-while, for) AULA 05 Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Seleção Múltipla Laços (while, do-while, for) AULA 05 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Até aqui...

Leia mais

M e d iator. Padrões de Projeto. Mediator. Prof. Alexandre Vidal DEINF-UFMA. M e di a t or

M e d iator. Padrões de Projeto. Mediator. Prof. Alexandre Vidal DEINF-UFMA. M e di a t or T ó p i c o s A v a n ç a d o s e m L i n g u a g e m d e P r o g r a m a ç ã o Padrões de Projeto Prof. Alexandre Vidal DEINF-UFMA Classificação: Propósito: Comportamental Escopo: Objeto Intenção: definir

Leia mais

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

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA

Leia mais

No final deste curso, saberás criar programas através da linguagem de programação Java.

No final deste curso, saberás criar programas através da linguagem de programação Java. Programação em Java Programação Formato: Mentored - Online Preço: 415 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 24h/24h Duração: ~45h

Leia mais

Capítulo 6: Linguagens de Programação

Capítulo 6: Linguagens de Programação Capítulo 6: Linguagens de Programação Ciência da Computação: Uma Visão Abrangente 11a Edição by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Capítulo 6: Linguagens de programação 6.1 Perspectiva

Leia mais

Segunda Parte (3 valores) Primeira Parte (7 valores) Nome: Número: PERGUNTA NOTA PERGUNTA RESPOSTA

Segunda Parte (3 valores) Primeira Parte (7 valores) Nome: Número: PERGUNTA NOTA PERGUNTA RESPOSTA 2º Teste 2012/2013 1º Semestre 201301171830 1/7 2º Teste 2012/2013 1º Semestre 17 de Janeiro de 2013, 11:30 (120 minutos) Nome: Número: Primeira Parte (7 valores) PERGUNTA NOTA 1.1.1 1.1.2 1.1.3 1.2 1.3

Leia mais

Padrões de Projeto de Software

Padrões de Projeto de Software Padrões de Projeto de Software Lista de Exercícios AV2-01 Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 Qual o objetivo dos padrões Comportamentais, segundo o catálogo GOF? Questão 1 Resposta

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 09 Padrões GoF (Adapter e Composite) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

Leia mais

Polimorfismo. O que é polimorfismo?

Polimorfismo. O que é polimorfismo? O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus

Leia mais

ALOCAÇÃO DINÂMICA DE MEMÓRIA

ALOCAÇÃO DINÂMICA DE MEMÓRIA INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador

Leia mais

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

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga Algoritmos e Programação II Aula 3 Sobrecarga *Adaptado do material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, com nomes

Leia mais

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos; Fundação CECIERJ - Vice Presidência de Educação Superior a Distância Curso de Tecnologia em Sistemas de Computação Disciplina: Programação Orientada a Objetos AP2 2 semestre de 2016. Nome Assinatura Observações:

Leia mais

Atributos e Métodos Estáticos

Atributos e Métodos Estáticos Atributos e Métodos Estáticos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Atributos Estáticos Atributos

Leia mais

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

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos) Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private

Leia mais

Diagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15

Diagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15 Diagrama de Classes Conceitos Básicos prof. Robinson Vida (vida@utfpr.edu.br) 1 Função do Diagrama de Classes Permitir a visualização das classes que comporão o sistema com seus respectivos atributos e

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1. Torna o atributo visível a todas as classes do pacote onde foi declarado: a) public b) private c) protected d) package

Leia mais

Linguagem de programação Programação Orientada a objetos

Linguagem de programação Programação Orientada a objetos Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Programação Orientada a objetos Professor: Saulo Henrique Cabral Silva Paradigma da orientação a objetos Paradigma = forma de

Leia mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Herança. Prof. Fernando V. Paulovich  23 de agosto de 2010 Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade

Leia mais

Structural Patterns - Flyweight

Structural Patterns - Flyweight Algumas aplicações, tais como editores de texto, possuem uma granularidade de representação muito fina sobre os dados;... e uma quantidade muito grande de dados. O custo de memória para representação destes

Leia mais

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO REVISÃO POO INTRODUÇÃO À LINGUAGEM JAVA CRIANDO CLASSES EM JAVA Convenção de Nomes em Java Classes iniciam com letras maiúsculas Métodos, atributos e variáveis locais iniciam com minúsculas. Declaração

Leia mais

PADRÕES DE PROJETO DE SOFTWARE

PADRÕES DE PROJETO DE SOFTWARE Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação PADRÕES DE PROJETO DE SOFTWARE SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre

Leia mais

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

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

Leia mais

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções Implementação de Genéricos, Iteradores Isabel Harb Manssour Porto Alegre, maio de 2006 Roteiro Implementação de Genéricos Coleções Conceito de Genérico Implementação Iteradores Conceito Utilização ForEach

Leia mais

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli Vetores De modo geral, em linguagem de programação, vetores ou arrays são estruturas de dados que permitem que uma mesma variável possa armazenar mais de um valor; Em Java, vetores são coleções de dados,

Leia mais

Quando um Auto-Relacionamento não é mais um Auto-Relacionamento

Quando um Auto-Relacionamento não é mais um Auto-Relacionamento UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Quando um Auto-Relacionamento não é mais um Auto-Relacionamento! 1. Introdução!! Em algumas situações, durante o processo de modelagem,

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

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

Classes, instâncias e métodos de acesso. prática Classes, instâncias e métodos de acesso prática Exercício 01 Crie a classe Ponto que possui duas dimensões (int x, int y). Crie os métodos get e set. Faça o main para instanciar e testar a classe. Adicione

Leia mais

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

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são: Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.

Leia mais

Variáveis primitivas e Controle de fluxo

Variáveis primitivas e Controle de fluxo Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/

Leia mais

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

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas

Leia mais

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

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual

Leia mais

Sintaxe Básica do Java. João Paulo Q. dos Santos

Sintaxe Básica do Java. João Paulo Q. dos Santos Sintaxe Básica do Java João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Plano de Aula Introdução; Método Main; Variáveis: Tipos primitivos; Referências para Objetos; Operadores; Estruturas: Condicionais

Leia mais

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

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;

Leia mais

Universidade Estadual de Santa Cruz

Universidade Estadual de Santa Cruz Universidade Estadual de Santa Cruz Departamento de Ciências Exatas e Tecnológicas DCET Bacharelado em Ciência da Computação Professor: Esbel Tomás Valero Orellana Linguagem de Programação III Introdução

Leia mais

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

DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS LISTA DE EXERCÍCIOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS 1. Crie um modelo (classe)

Leia mais