PROJECTO EMPREGADOS. Criar uma classe EmpresaMap com os mesmos requisitos mas usando TreeMap<String, Empregado>.

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

Download "PROJECTO EMPREGADOS. Criar uma classe EmpresaMap com os mesmos requisitos mas usando TreeMap<String, Empregado>."

Transcrição

1 PROJECTO EMPREGADOS Os empregados de uma empresa são caracterizados pela seguinte informação: código, nome e dias de trabalho efectivos no mês. Todos os empregados normais possuem um salário-dia fixo. No entanto, os gestores têm um prémio de gestão que multiplica o seu vencimento normal (exº 1.25). Os motoristas, têm definido um valor por Km percorrido, e têm a si associado o número de Kms percorridos nesse mês para cálculo do seu salário final. Criar uma classe EmpresaList que represente a lista de todos os empregados da empresa, e tenha implementados, para além dos métodos usuais, os seguintes métodos: Verificar se um empregado de código dado existe; Devolver a ficha de um empregado dado o seu código; Inserir um novo empregado; Devolver uma cópia da lista de empregados; Inserir todos os empregados de um conjunto dado; Calcular o total de salários a pagar; Calcular o número total de gestores da empresa; Calcular o total de empregados do tipo dado como String; Calcular o total de Kms percorridos pelos motoristas; Gravar a instância num ficheiro de texto; Gravar a instância num ficheiro de objectos; Criar uma classe EmpresaMap com os mesmos requisitos mas usando TreeMap<String, Empregado>. Criar uma classe EmpresaSet com os mesmos requisitos mas usando TreeSet<Empregado>, e um Comparator<Empregado> que permirá que os empregados sejam ordenados segundo uma ordem dada.

2 DIAGRAMA DE CLASSES DO PROJECTO NOTA: Esta solução é a solução normalizada em termos de polimorfismo, porque usa uma classe abstracta para o tipo Empregado e define 3 subtipos concretos, designadamente Normal, Motorista e Gestor. É usada na classe Empregado uma variável de classe que corresponde ao valor do salário diário, dado que tal valor deve ser comum a todos os empregados, um método que permite mudar este valor e outro que permite consultá-lo.

3 /** * Abstract class Empregado */ import java.io.*; public abstract class Empregado implements Serializable{ // Definições de classe private static double saldia = 50.00; public static double getsaldia() { return saldia; public static void setsaldia(double nvsaldia) { saldia = nvsaldia; public Empregado(String cod, String nom, int dias) { codigo = cod; nome = nom; this.dias = dias; public Empregado(Empregado emp) { codigo = emp.getcodigo(); nome = emp.getnome(); dias = emp.getdias(); // variáveis de instância private String codigo; private String nome; private int dias; // métodos de instância public String getnome() { return nome; public String getcodigo() { return codigo; public int getdias() { return dias; public boolean equals(object obj) { if(this == obj) return true; if((obj == null) (this.getclass()!= obj.getclass())) return false; Empregado e = (Empregado) obj; return nome.equals(e.getnome()) && codigo.equals(e.getcodigo()) && dias == e.getdias(); // abstractos public abstract double salario(); public abstract String tostring(); public abstract Empregado clone();

4 /** Normal < Empregado */ public class Normal extends Empregado { public Normal(String cod, String nom, int dias) { super(cod, nom, dias); public Normal(Normal func) { super(func); // Métodos de Instância public double salario() { return this.getdias()*getsaldia(); public String tostring() { return "Normal: " + this.getnome() + " - " + this.getcodigo() + " - " + this.salario(); public Normal clone() { return new Normal(this); /** Gestor < Empregado */ public class Gestor extends Empregado { public Gestor(String cod, String nom, int dias, double prem) { super(cod, nom, dias); premio = prem; public Gestor(Gestor gest) { super(gest); premio = gest.getpremio(); // variáveis de instância private double premio; // Métodos de instância public double getpremio() { return premio; // Implementação dos abstractos public double salario() { return this.getdias()*getsaldia()*premio; public String tostring() { return "Gestor: " + this.getnome() + " - " + this.getcodigo() + " - " + this.salario(); public boolean equals(object g) { return super.equals(g) && premio == ((Gestor) g).getpremio(); public Gestor clone() { return new Gestor(this);

5 /** Motorista < Empregado. */ public class Motorista extends Empregado { private static double valorkm = 0.002; public static void mudavalorkm(double nvvalkm) { valorkm = nvvalkm; public Motorista(String cod, String nom, int dias, double kms) { super(cod, nom, dias); kiloms = kms; public Motorista(Motorista motor) { super(motor); kiloms = motor.getkms(); // Vars de instância private double kiloms; // Métodos de instância public double getkms() { return kiloms; public void setkms(double kms) { kiloms = kms; // Implementação dos abstractos public double salario() { return this.getdias()*getsaldia()*(kiloms*valorkm); public String tostring() { return "Motorista: " + this.getnome() + " - " + this.getcodigo() + " - " + this.salario(); public boolean equals(object m) { return super.equals(m) && kiloms == ((Motorista) m).getkms(); public Motorista clone() { return new Motorista(this);

6 /** * EmpresaList: Uma Lista de Empregado. * F. Mário Martins 1/2007 */ import java.util.*; import java.io.*; public class EmpresaList implements Serializable { // variáveis de instância private ArrayList<Empregado> emps = new ArrayList<Empregado>(); public EmpresaList() { emps = new ArrayList<Empregado>(); public EmpresaList(ArrayList<Empregado> lstemp) { for(empregado emp : lstemp) emps.add(emp.clone()); public EmpresaList(EmpresaList le) { List<Empregado> aux = le.dalista(); for(empregado emp : aux) emps.add(emp); // Métodos de Instância public void insereemp(empregado emp) { emps.add(emp.clone()); public boolean existeemp(string cod) { boolean existe = false; Iterator<Empregado> itemp = emps.iterator(); while(itemp.hasnext() &&!existe) { if(itemp.next().getcodigo().equals(cod)) existe = true; return existe; public void insereempregados(collection<? extends Empregado> lstemp) { for(empregado emp : lstemp) emps.add(emp.clone());

7 public void juntaempregados(collection<empregado> lstemp) { for(empregado emp : lstemp) emps.add(emp.clone()); public Empregado dafichaemp(string cod) { boolean existe = false; Empregado emp = null; Iterator<Empregado> itemp = emps.iterator(); while(itemp.hasnext() &&!existe) { emp = itemp.next(); if(emp.getcodigo().equals(cod)) existe = true; return existe? emp.clone() : null; public List<Empregado> dalista() { ArrayList<Empregado> aux = new ArrayList<Empregado>(); for(empregado emp : emps) aux.add(emp.clone()); return aux; public double totalsalarios() { double total = 0.0; for(empregado emp : emps) total += emp.salario(); return total; public int totalgestores() { int total = 0; for(empregado emp : emps) if(emp instanceof Gestor) total++; return total; public int totalde(string Tipo) { int total = 0; for(empregado emp : emps) if(emp.getclass().getname().equals(tipo)) total++; return total;

8 public double totalkms() { double totalkm = 0.0; for(empregado emp : emps) if(emp instanceof Motorista) totalkm += ((Motorista) emp).getkms(); return totalkm; public String tostring() { StringBuilder sb = new StringBuilder("--- Empregados ---\n"); for(empregado emp : emps) sb.append(emp.tostring() + "\n"); return sb.tostring(); // Métodos a explicar posteriormente public void gravaobj(string fich) throws IOException { ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream(fich)); oos.writeobject(this); oos.flush(); oos.close(); public void gravatxt(string fich) throws IOException { PrintWriter pw = new PrintWriter(fich); pw.print(this); pw.flush(); pw.close();

9 /** * TesteEmpresaList: teste de ArrayList<Empregado>. F. Mário Martins 1/2007 */ import static java.lang.system.out; import java.io.*; public class TesteEmpresaList { public static EmpresaList main() { Motorista mt1 = new Motorista("M10", "Rui", 20, 1000); Motorista mt2 = new Motorista("M12", "Luis", 22, 1200); Gestor g1 = new Gestor("G1", "Manuel", 22, 1.5); Gestor g2 = new Gestor("G2", "Joel", 22, 1.5); Normal n1 = new Normal("N1", "Vasco", 25); Normal n2 = new Normal("N22", "Maria", 20); Normal n3 = new Normal("N25", "Laura", 21); EmpresaList lstemp = new EmpresaList(); lstemp.insereemp(mt1); lstemp.insereemp(mt2); lstemp.insereemp(g1); lstemp.insereemp(g2); lstemp.insereemp(n1); lstemp.insereemp(n2); lstemp.insereemp(n3); out.println(lstemp.tostring()); // terminal window // código a explicar posteriormente try { lstemp.gravaobj("emp1.obj"); lstemp.gravatxt("emp1.txt"); catch(ioexception e) { out.println(e.getmessage()); EmpresaList lstemps1 = new EmpresaList(); // lê da ObjectStream a instância anteriormente gravada!! try { ObjectInputStream ooin = new ObjectInputStream(new FileInputStream("emp1.obj")); lstemps1 = (EmpresaList) ooin.readobject(); ooin.close(); catch(ioexception e) { catch(classnotfoundexception ec) {; return lstemps1;

Em JAVA, todas as considerações (ou quase todas) que se relacionam com as mais

Em JAVA, todas as considerações (ou quase todas) que se relacionam com as mais STREAMS DE JAVA Em JAVA, todas as considerações (ou quase todas) que se relacionam com as mais diferentes formas de se realizar a leitura e a escrita de dados a partir das mais diversas fontes e para os

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

Array de objectos Array de objectos Criação Exemplo:

Array de objectos Array de objectos Criação Exemplo: Array de objectos Nos exemplos anteriores array armazenava dados de tipos primitivos. Array de objectos é um array cujos elementos são objectos ou, mais correctamente, referências para objectos. Característica

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded

Leia mais

f1 == f2 <=> n1 == n2 e d1 == d2 // Versão 1.0 class Fraction { private: public: Fraction (int, int); };

f1 == f2 <=> n1 == n2 e d1 == d2 // Versão 1.0 class Fraction { private: public: Fraction (int, int); }; % & ' ( ) * + + +, -. / / 0 / 1 1 2 3 4 5 0 6. 5 7. 8 0 9 3 : 0 /, 3 9 /; 5 < ; 3 5 0 / = 3 5 3 : > / /? 3 @ = 0 5. 8 3 5 0 / 0 :, A A : 0 : 4 5 3 / 0 9? 3 : 0 : 4 5 3 / B 2 3 4 5 0 6. 5 7. 8 0 3 = 0 5.

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 8.1 - A classe File Antes de podermos ler/escrever de/para um ficheiro temos que criar um objecto do tipo File e associar esse objecto ao ficheiro a que queremos aceder. Para isso usamos um dos construtores

Leia mais

InputStream e OutputStream para ler/ escrever bytes e das classes abstractas Reader e Writer para ler /escrever caracteres (texto).

InputStream e OutputStream para ler/ escrever bytes e das classes abstractas Reader e Writer para ler /escrever caracteres (texto). Input e Output 8 Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo físico

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

Notas de POO: interfaces, excepções e input/output

Notas de POO: interfaces, excepções e input/output Notas de POO: interfaces, excepções e input/output 2006/07 Conteúdo 1 Considerações gerais 1 2 Interfaces 1 2.1 Hierarquia das Interfaces........................... 2 2.2 Interfaces e Classes Abstractas........................

Leia mais

A Relação de Subtipo e Tipos Genéricos

A Relação de Subtipo e Tipos Genéricos O tipo List representa as listas que declaram ter elementos do tipo Object O tipo que representa as listas que declaram ter elementos de um tipo qualquer é List Este tipo é definido à custa

Leia mais

Encapsulamento. Alberto Costa Neto DComp - UFS

Encapsulamento. Alberto Costa Neto DComp - UFS Encapsulamento Alberto Costa Neto DComp - UFS 1 Motivação O que aprendemos até agora? O que diferencia a POO da Programação Imperativa? Estas informações são suficientes para construir um projeto OO eficiente?

Leia mais

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu: Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)

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

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

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

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel) Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo

Leia mais

Interfaces POO. Prof. Marcio Delamaro

Interfaces POO. Prof. Marcio Delamaro Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso

Leia mais

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Classes e Objetos. Prof. Fernando V. Paulovich  9 de agosto de 2010 Classes e Objetos 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

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

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

Reader e Writer para streams de caracteres (texto).

Reader e Writer para streams de caracteres (texto). Folha 1-1 Recordando POO: Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo

Leia mais

Prof. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1

Prof. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1 INE5603 Introdução à POO Prof. A. G. Silva 13 de novembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de 2017 1 / 1 Introdução à manipulação de arquivos Prof. A. G. Silva INE5603

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

Streams e Ficheiros I/O

Streams e Ficheiros I/O Streams e Ficheiros I/O Capítulo 9 Objectivos Familiarizar com o conceito I/O stream Entender a diferença entre ficheiros binários e de texto. Saber armazenar dados em ficheiros de texto. Saber ler dados

Leia mais

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

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Reader e Writer para streams de caracteres (texto).

Reader e Writer para streams de caracteres (texto). Folha 1-1 Recordando POO: Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo

Leia mais

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas Herança e Polimorfismo Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Revisando -Herança Estrutura Hierárquica e modular Projeção de classes genéricas que podem ser especializadas

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

public class Autenticador { private static final ThreadLocal<UsuarioInterface> threadusuario = new ThreadLocal<UsuarioInterface>();

public class Autenticador { private static final ThreadLocal<UsuarioInterface> threadusuario = new ThreadLocal<UsuarioInterface>(); JBook - Shadowing Source folder: src/main/java Main package: br.com.infowaypi.jbook. Actual package: autenticacao Java file: Autenticador.java package br.com.infowaypi.jbook.autenticacao; public class

Leia mais

Boas práticas com Orientação a Objetos. Paulo Silveira

Boas práticas com Orientação a Objetos. Paulo Silveira Boas práticas com Orientação a Objetos Paulo Silveira paulo.silveira@caelum.com.br Rapidissímo overview IFs e switches X herança Vantagens e desvantagens do uso de Herança Casos errados do uso de herança

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos

Leia mais

Arquivos continuação. Profa. Thienne Johnson EACH/USP

Arquivos continuação. Profa. Thienne Johnson EACH/USP Arquivos continuação Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 14 Serialização de objetos Lê e escreve objetos inteiros em arquivo; Arquivo em formato binário.

Leia mais

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20 PPROG Paradigmas da Programação Tipos Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20 Sumário Interesse Definição Implementação Declaração Valor de um Tipo Enumerado Variável de Tipo Enumerado Métodos Automáticos

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

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

AULA TEÓRICA 10. Tema 9. Interface. Tema 10. Recursividade

AULA TEÓRICA 10. Tema 9. Interface. Tema 10. Recursividade AULA TEÓRICA 10 Tema 9. Interface Tema 10. Recursividade 1 Interface Uma interface é como uma classe que não pode ser instanciada. Seu objectivo é espicificar um conjunto de métodos que uma classe deverá

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 Professor: Fernando Maia da Mota Orientações Básicas Leia atentamente as instruções para cada questão. A prova deverá ser feita a lápis ou caneta (preta ou azul) em uma folha de rascunho que será fornecida

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Pacotes e Encapsulamento Msc. Paulo de Tarso F. Júnior 1 Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes e interfaces

Leia mais

INTRODUÇÃO À REPRESENTAÇÃO E ANÁLISE DE GRAFOS COM A API JUNG

INTRODUÇÃO À REPRESENTAÇÃO E ANÁLISE DE GRAFOS COM A API JUNG grafos_ INTRODUÇÃO À REPRESENTAÇÃO E ANÁLISE DE GRAFOS COM A API JUNG Técnicas e exemplos de código para representar e analisar estruturas como redes sociais, redes de computadores, conjuntos de dados

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos

Leia mais

Herança e Polimorfismo

Herança e Polimorfismo Herança e Polimorfismo 2013 O que veremos hoje? Herança e polimorfismo Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Polimorfismo em POO Mais

Leia mais

Gravação de objetos em arquivos

Gravação de objetos em arquivos Gravação de objetos em arquivos Programação Orientada a Objetos Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 17 de setembro de 2014 1

Leia mais

Singleton. Como a maioria dos programadores organizaria o código para acessar informação de configuração? Eis um exemplo:

Singleton. Como a maioria dos programadores organizaria o código para acessar informação de configuração? Eis um exemplo: Introdução Como a maioria dos programadores organizaria o código para acessar informação de configuração? Eis um exemplo: public class Config { public static final String DEFAULT_READ_COMMUNITY_NAME =

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

INTERFACES DE JAVA. O JCF é uma arquitectura que se baseia em três entidades fundamentais:

INTERFACES DE JAVA. O JCF é uma arquitectura que se baseia em três entidades fundamentais: INTERFACES DE JAVA O JCF é uma arquitectura que se baseia em três entidades fundamentais: a) Interfaces; b) Classes abstractas; c) Classes Concretas Implementações; Interfaces e Comparator 1 Interfaces

Leia mais

Interfaces e Classes Internas

Interfaces e Classes Internas e Classes Internas 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

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Hierarquia de classes. Veja as diversas classes do pacote

Hierarquia de classes. Veja as diversas classes do pacote Entrada e Saída Introdução Input e Output fazem parte do pacote java.io Esse pacote tem uma quantidade grande de classes que dão suporte a operações de entrada e saída As classes básicas são InputStream

Leia mais

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. Cap. IV - Programação Concorrente [Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. [Gosling] The Java Language Specification James Gosling, Bill Joy and

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

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares Programação Orientada a Objetos Classes Abstratas Sérgio Soares scbs@cin.ufpe.br Até aqui Quando usar herança? Ao redefinir um método manter o comportamento herdado! 2 Adivinhem... Surge um novo requisito

Leia mais

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

Extensão de classes em Java - noções elementares - PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Extensão de classes em Java - noções elementares - PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Conteúdo Noções elementares de extensão de classes Exemplo: classe

Leia mais

5 Caso de estudo O cartão fidelidade

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

Leia mais

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

Como pôde verificar, a criação de um objecto do tipo File não cria o ficheiro em disco.

Como pôde verificar, a criação de um objecto do tipo File não cria o ficheiro em disco. Folha 1-1 I/O em java (pakage java.io) A classe File A classe File (subclasse de Object) permite manipular os ficheiros e as directorias de um sistema de ficheiros. 1 - Substituindo o texto d:\\my_work\\

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

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

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido

Leia mais

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

6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza  ~ vitorsouza Desenvolvimento OO com Java 6 Polimorfismo 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 Espírito

Leia mais

Programação Orientada por Objetos

Programação Orientada por Objetos PPROG Paradigmas da Programação Programação Orientada por Objetos Herança de Classes Polimorfismo Classes Abstratas (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2015/16) 1/72

Leia mais

Linguagem de Programação Orientada a Objeto Coleções

Linguagem de Programação Orientada a Objeto Coleções Linguagem de Programação Orientada a Objeto Coleções Professora Sheila Cáceres Coleções Uma coleção é uma estrutura de dados que permite armazenar vários objetos As operações que podem ser feitas em coleções

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1

Leia mais

Ficha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06

Ficha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06 Ficha Prática 10 António Nestor Ribeiro, Paulo Azevedo, Mário Martins {anr,pja,fmm@di.uminho.pt PPIV (LESI) 2005/06 Objectivos 1. Interfaces: declaração e utilização. 2. Interfaces como 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

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

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. 6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa

Leia mais

Java - Conexão ao Banco de Dados usando JDBC

Java - Conexão ao Banco de Dados usando JDBC Java - Conexão ao Banco de Dados usando JDBC 1. Criar o modelo no DBDesigner, como mostrado a seguir. Salvar o script de criação da tabela. 2. Criar o esquema e as tabelas no MySQL (Pode usar o MySQL Query

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa

Leia mais

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1 P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start

Leia mais

JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo

JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo GENERICS (Tipos Parametrizados, Classes Parametrizadas) : têm o objectivo de tornar as Colecções seguras em termos

Leia mais

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística. Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística. package ProjetoIntegrador; import java.io.bufferedreader; import

Leia mais

JUnit. Alexandre Menezes Silva Eduardo Manuel de Freitas Jorge

JUnit. Alexandre Menezes Silva Eduardo Manuel de Freitas Jorge JUnit Alexandre Menezes Silva alexandre_crvg@hotmail.com Eduardo Manuel de Freitas Jorge emjorge1974@gmail.com 0 Sumário O que é?... 2 Pra que serve?... 2 Arquitetura... 2 Método de comparação assertequals...

Leia mais

Interfaces. Classes abstratas que possuem apenas métodos abstratos. Na Interface: Métodos são implicitamente. Campos são implicitamente

Interfaces. Classes abstratas que possuem apenas métodos abstratos. Na Interface: Métodos são implicitamente. Campos são implicitamente Classes abstratas que possuem apenas métodos abstratos Na Interface: Métodos são implicitamente abstract e public Campos são implicitamente static e final Não possuem construtores assim como as classes

Leia mais

Escreva em Java a classe NumeroComplexo que represente um número complexo. A classe deverá ter os seguintes construtores:

Escreva em Java a classe NumeroComplexo que represente um número complexo. A classe deverá ter os seguintes construtores: Lista 2 1 - Números Complexos Números complexos são os que são escritos da forma: a + b*i onde a é a parte real e b a parte imaginária. Escreva em Java a classe NumeroComplexo que represente um número

Leia mais

MsC. João Maria MsC. Liviane Melo

MsC. João Maria MsC. Liviane Melo Disciplina: Programação Orientada à Objetos AULA 02 Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio Procópio Esp. Felipe Dantas MsC. João Maria MsC. Liviane Melo 2 Tipo Tamanho Alcance

Leia mais

Persistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

Persistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe Persistência alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Retrospectiva Quanto ao Tempo de Vida Variáveis Estáticas Variáveis Stack-Dinâmicas Variáveis Heap-Dinâmicas

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 7: Interfaces LEEC@IST Java 1/31 Interfaces revisão (1) Uma interface é um conjunto de protótipos de métodos (sem implementações) que especifica um serviço bem definido:

Leia mais

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

Programação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011 Programação Orientada por Objectos 2010/11 2º Exame 28 de Junho de 2011 Instruções (leia com cuidado): Escreva de forma CLARA o seu nome e número em todas as folhas. O exame contém 8 páginas dividido em

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

Orientação a Objetos - Herança

Orientação a Objetos - Herança Orientação a Objetos - Herança 1 Repetindo Código p Todo banco tem funcionário. A classe funcionario ficaria da seguinte forma; class Funcionario { String nome; String cpf; double salario; // métodos devem

Leia mais

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1 INE5603 Introdução à POO Prof. A. G. Silva 30 de outubro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de 2017 1 / 1 Especialização de classes (I) (Cap. 6) Operações de abstração como

Leia mais

if( opcao.equals("1") ) { ElaborarContratoUI uiec = new ElaborarContratoUI(m_empresa); uiec.run();

if( opcao.equals(1) ) { ElaborarContratoUI uiec = new ElaborarContratoUI(m_empresa); uiec.run(); Alterações ao código da Iteração 1 para realizar o UC Registar Cliente Na classe MenuUI.java no package rentacarapp_ui existe o método run(): public void run() throws IOException { opcao = "1"; System.out.println("1.

Leia mais

JAVA. José de Siqueira UFMG - ICEx - DCC

JAVA. José de Siqueira UFMG - ICEx - DCC ESTRUTURAS DE DADOS JAVA BÁSICAS EM José de Siqueira UFMG - ICEx - DCC 1 o semestre de 2005 O Tipo Abstrato de Dados Pilha O TAD pilha tem quase as mesmas operações apresentadas anteriormente: 1. empilha(o):

Leia mais

Programação Orientada a Objetos com Java. Prof. Júlio Machado

Programação Orientada a Objetos com Java. Prof. Júlio Machado Programação Orientada a Objetos com Java Prof. Júlio Machado julio.machado@pucrs.br HERANÇA Herança Herança é uma relação de generalização/especialização entre classes A ideia central de herança é que

Leia mais

Um aluno digitou o código C++ a seguir:

Um aluno digitou o código C++ a seguir: Questão Pai Filha Assunto avaliado: Polimorfismo. Um aluno digitou o código C++ a seguir: #include #include #include #include using namespace std; class Pai Pai()

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 7 Herança vs. Composição Interface Aplicação de Interface Exercício

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Herança; Sobrescrita, Sobrecarga e Polimorfismo; Classes abstratas e concretas (finais).

Herança; Sobrescrita, Sobrecarga e Polimorfismo; Classes abstratas e concretas (finais). Disciplina: Programação Orientada à Objetos AULA 08 Herança; Sobrescrita, Sobrecarga e Polimorfismo; Classes abstratas e concretas (finais). Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio

Leia mais

Programação Orientada aos Objectos I

Programação Orientada aos Objectos I Programação Orientada aos Objectos I UEM Fevereiro 2014 Docente: eng a Tatiana Kovalenko AULA TEÓRICA 1 Tema 1. Introdução à POO Ø Revisão: POO. Classes e Objectos. Elaborado por eng.tatiana Kovalenko,

Leia mais

if (umobjecto!= null && umobjecto instanceof CartaoFidelidade){ titular.equals(((cartaofidelidade) umobjecto).titular) &&

if (umobjecto!= null && umobjecto instanceof CartaoFidelidade){ titular.equals(((cartaofidelidade) umobjecto).titular) && P. Fazendeiro & P. Prata POO - TP03 / 25 _ [... //classe CartaoFidelidade: alguns métodos adicionais] public boolean equals(object umobjecto){ if (umobjecto!= null && umobjecto instanceof CartaoFidelidade){

Leia mais

Modulo II Tópicos em Java - Extra

Modulo II Tópicos em Java - Extra Modulo II Tópicos em Java - Extra Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Modulo II - Tópicos em JAVA - Extra Logging Asserções Classe java.lang.object

Leia mais

Programação Orientada por Objectos 2007/2008

Programação Orientada por Objectos 2007/2008 Programação Orientada por Objectos 2007/2008 Segundo Teste, 30/6/2008, Duração 1h30 (20 valores) 1 [2v] Considere que pretende desenvolver uma função num jogo que trata uma colisão entre dois objectos

Leia mais

Manipulação de arquivos. João Paulo Q. dos Santos

Manipulação de arquivos. João Paulo Q. dos Santos Manipulação de arquivos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Introdução Uma das principais facilidades em Java, comparando com outras linguagem de programação, é a facilidade na leitura e

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded

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