Notas de Aula 05: Diretivas de atributos, métodos e classes e o uso de Interfaces.

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

Download "Notas de Aula 05: Diretivas de atributos, métodos e classes e o uso de Interfaces."

Transcrição

1 Notas de Aula 05: Diretivas de atributos, métodos e classes e o uso de Interfaces. Objetivos da aula: Introduzir o uso da diretiva final Introduzir o uso da diretiva static Introduzir o uso da diretiva abstract Introduzir o conceito de interfaces Introduzir o uso da diretiva implements Recordando... Na aula passada, empregando o conceito de herança, criamos uma subclasse Engenheiro que herda atributos e métodos de uma superclasse Profissional. Os atributos com modificadores private foram herdados pela classe Engenheiro, mas só podiam ser acessado pelos métodos public get e set. Nesta aula, veremos que outras diretivas importantes podem ser aplicados aos atributos, métodos e classes. Utilizar essas diretivas tornam seu código em Java mais aderente a modelagem proposta para o sistema. Diretivas final e static e abstract Diretiva final em métodos Quando fizemos um método para calcular o salário em cada uma dessas classes (Profissional e Engenheiro), utilizamos a técnica de escrever o método setsalário(float salario) na superclasse e sobrescrevê-lo na subclasse. Percebemos, então, que é possível que qualquer classe filha sobrescreva métodos da classe mãe, o que pode ser indesejável para determinados casos. Por exemplo, o método setcpf(string cpf) poderia ser o responsável na classe mãe por legitimar o CPF passado, investigando se o dígito verificador corresponde a toda sentença. Ocorre que um programador descuidado (ou

2 coisa pior) poderia sobrescrever o método, repetindo um código desnecessariamente ou simplesmente omitindo-o. Nesses casos, o uso da diretiva final pode evitar esse tipo de problema. Em Java, quando desejamos impedir o polimorfismo de sobrescrita, adicionamos a diretiva final ao método. De agora em diante, se uma classe filha tentar sobrescrever o método, um erro de compilação será gerado. Para utilizarmos a diretiva final, basta adicionar a sentença após o modificador de acesso: public final void setcpf(string cpf){ this.cpf=cpf; Diretiva final em classes Nos exercícios da aula passada, criamos uma classe Medico como filha da classe Profissional. Você, como programador, percebeu que agora é possível estender tanto quanto você queira a sua herança. Por exemplo, você pode criar uma classe Hemoterapeuta como filha da classe Medico. A classe Hemoterapeuta possui um único atributo, um booleano que indica se o médico é acreditado internacionalmente. A classe Hemoterapeuta também herda da classe Profissional. Já que criamos uma classe filha como uma especialidade da classe Medico, então o atributo especialidademedica (criado na aula passada) pode sumir. Teremos então:

3 O uso indeterminado da herança também pode acarretar problemas. Por exemplo, você pode não desejar que nenhum método público ou protegido possa ser sobrescrito. Ao invés de aplicar a diretiva final para cada método, o programador pode aplicar a toda uma classe, impedindo a criação de classes filhas e consequentemente a criação de métodos sobrescritos. Utilizar a diretiva final também pode traz maior valor semântico a representação de uma estrutura hierárquica. Simplesmente, pode não fazer sentido criar classes filhas. Por exemplo, a classe Hemoterapeuta não possui

4 nenhum tipo de extensão possível. Classes final são considerados Folha (Leaf) na UML. A diretiva final pode ser aplicada na declaração da classe posteriormente ao modificador de acesso: public final class Hemoterapeuta extends Medico{ private boolean acreditado; Diretiva final em atributos A diretiva final é também aplicada aos atributos que o programador deseja tornar uma constante. Os atributos final devem ser iniciados na declaração, não podendo ser reescritos posteriormente. Suponha a classe Engenheiro definida anteriormente. O atributo pisosalarial nesta classe indica o valor mínimo que um engenheiro deve ganhar como salário. Ao pensarmos na natureza deste atributo, imaginamos que ele não se altera durante a execução do programa. Uma vez inicializado, o mesmo valor não será alterado até o término do programa. Podemos, assim, transformar o atributo em final e impedir alterações descuidadas: private final float pisosalarial =7000; public Engenheiro ( ){ super (pisosalarial); Nesse sentido, se o atributo é final, então não precisamos de um método set. O método setpisosalarial(float pisosalarial) pode ser excluído. Mais do que isso, se o valor do atributo é inalterado, então também não precisamos de um método get: basta alterarmos o modificador de acesso para público. A convenção em Java determina que constantes sejam declarados em letras maiúsculas. Nomes compostos são separados por underline. public final float PISO_SALARIAL =7000; Diretiva static em atributos Se você estivesse projetando um sistema para cadastro dos seus engenheiros, possivelmente você pensaria em uma maneira de informá-lo

5 sobre o piso salarial, certo? Ocorre que o atributo só está disponível quando você cria uma instância da classe Engenheiro: public class Principal{ public static void main(string [] args){ Engenheiro eng = new Engenheiro(); System.out.println( Piso Salarial: + eng.piso_salarial); Ao pensarmos um pouco melhor, estamos instanciando um objeto (com toda a alocação de memória de todos os atributos da classe) somente para acessar um determinado valor de atributo. Mais do que isso, o atributo PISO_SALARIAL possui uma característica imutável não só para um objeto da classe Engenheiro, mas sim para todos os objetos desta classe. Então, para esses casos, existe a diretiva static (estático) que transforma um atributo de objeto para um atributo de classe. A existência do atributo passa a ser válida independentemente da existência de um objeto e seu valor é igual para todos os objetos daquela classe. public static float pisosalarial =7000; Para se referenciar a esse atributo, não precisamos mais criar um objeto. Basta escrevermos o nome da classe, o separador de acesso (.) e o atributo: public class Principal{ public static void main(string [] args){ System.out.println( Piso Salarial: + Engenheiro.PISO_SALARIAL); Na verdade, o que nós fizemos foi substituir a diretiva final por static no atributo PISO_SALARIAL. Como o atributo não é final, então o atributo deixa de ser uma constante. E, se deixar de ser constante, então deveríamos voltar com os métodos get e set... e, mesmo assim, um problema de concorrência poderia se apresentar (deixemos esse assunto para outra disciplina). De fato, para que esses problemas não ocorram com atributos, a diretiva static é usualmente utilizada em conjunto com a diretiva final:

6 public final static float pisosalarial =7000; No desafio da aula passada, foi solicitado a você que criasse um atributo PI com valor 3, Na verdade, nós não precisávamos criar um atributo para guardar este valor - o Java possui nativamente a classe Math com o atributo PI. Math.PI é um atributo público, estático e final. Diretiva static em métodos Tal qual os atributos, os métodos também podem ser estáticos. A invocação dos métodos pode ser feita sem a necessidade de criação de um objeto. Métodos estáticos são métodos das classes e não podem fazer referência a atributos não estáticos (dinâmicos). Além disso, ainda que possível, definir um método como privado e estático não faz muito sentido. Suponha, por exemplo, que quiséssemos criar um método que aplicasse um fator trabalhista, passado como parâmetro, sobre o piso salarial do Engenheiro. Poderíamos então criar um método estático que recebe o parâmetro fatortrabalhista e retornasse o resultado do piso multiplicado por esse valor. Isto só é possível porque fatortrabalhista é uma variável local ao método estático e PISO_SALARIAL é um atributo estático (constante): public static double calcularpisocorrigido(double fatortrabalhista){ return PISO_SALARIAL * fatortrabalhista; Se reparar bem, na classe Principal que sempre criamos em nossas aulas, o método main é sempre estático e público. Esta é a maneira do Java iniciar a nosso aplicação: nenhum objeto é criado desde o início; o Java sempre procurar uma classe que tenha um método estático, público e com assinatura main. Lembre-se: o uso das diretiva static é pontual. A diretiva static usada indiscriminadamente é um ótimo caminho para um programa Orientado a Objetos pessimamente modelado e implementado. Diretiva static em Classes As classes trabalhadas até o momento são chamadas de Top-Level classes. A estas classes não é permitida a aplicação da diretiva static. O uso da diretiva

7 static só é possível em classes internas (Inner Classes). Veremos esse assunto em aulas posteriores. Diretiva abstract em atributos Em Java, a diretiva abstract não é aplicável aos atributos de uma classe. Diretiva abstract em classes Existem situações em que as classes possuem um conjunto de características comuns que, entretanto, não é suficiente para que com ele seja possível definir objetos reais. Esse conjunto de características comuns é então separado em uma superclasse destinada apenas a definir o que é comum às subclasses dela derivadas, sem que se tenha a intenção de efetivamente instanciar objetos dessa classe. Tal classe é conhecida como Classe Abstrata. Nos nossos exemplos, a classe Profissional não é instanciada diretamente no método main. No entanto, nada impede que esta classe possua um objeto. Do ponto de vista do modelo de sistema, não faz sentido ter um objeto de uma classe cujo único propósito é agrupar atributos e operações comuns. Os casos de uso de seu sistema provavelmente se referem à classes concretas. Portanto, podemos transformar a classe Profissional como abstrata através da diretiva abstract: public abstract class Profissional {... A partir de agora, não será possível instanciar um objeto da classe Profissional. Na UML, classes abstratas tem seu nome em itálico. Diretiva abstract em métodos Ao se explicar o uso da diretiva final, utilizamos como exemplo o método setcpf(string cpf). Para restringirmos a sobrescrita errônea do método, adicionamos a diretiva final. E, se fosse ao contrário? E se tivéssemos um método que gostaríamos de obrigar uma sobrescrita? Afinal, pelo princípio da herança, se o método for público (ou protegido), a implementação já estará garantida. Até o momento, nada obriga uma classe filha a sobrescrever um método. Por exemplo, seja novamente a classe Profissional. Vamos adicionar duas novas classes como filhas da classe Profissional: ProfissionalRemuneracaoFixa e ProfissionalRemuneracaoComissionada (com o atributos qtd e

8 valorcomissao). As demais classes passam a ser filhas da classe ProfissionalRemenuracaoFixa. Para compor melhor o exemplo, a classe Profissional agora terá um método calcularremuneracao() que simplesmente retorna o salário do profissional: public float calcularremuneracao(){ return getsalario(); Esta implementação está adequada para a classe filha ProfissionalRemuneracaoFixa e suas subclasses.

9 public class ProfissionalRemuneracaoFixa extends Profissional { No entanto, imagine agora um profissional que recebe, além do salário, uma comissão. O método definido na classe mãe não está adequado para a outra classe filha (ProfissionalRemuneracaoComissionada). O método deverá ser sobrescrito para contemplar, além do salário, a comissão baseada no produto da quantidade vendida pelo valor da comissão mais o salário. A implementação fica da seguinte forma: public class ProfissionalRemuneracaoComissionada extends Profissional { private int qtd; private float valorcomissao; public int getqtd(){ return qtd; public void setqtd(int qtd){ this.qtd = qtd; public float getvalorcomissao(){ return valorcomissao; public void setvalorcomissao(float valorcomissao){ this.valorcomissao=valorcomissao; public float calcularremuneracao(){ return (getsalario()) + (qtd*valorcomissao); E se o método não fosse sobrescrito? Então teríamos um erro de lógica. Uma maneira de postergar uma implementação é utilizando a diretiva abstract. Um método abstrato não possui implementação e obriga as classes filhas a implementarem. A diretiva abstract é colocada logo após o modificador de acesso. Para que o nosso código fique correto, o método na classe Profissional deve ficar assim: public abstract float calcularremuneracao();

10 Perceba que não existe abre e fecha chaves {. Além disso, uma classe concreta (não abstrata) não pode ter métodos abstratos. A implementação básica do método calcularremuneracao() deve ficar presente na classe ProfissionalRemuneracaoFixa da seguinte forma: public class ProfissionalRemuneracaoFixa extends Profissional { Interfaces Nos exemplos acima, o que fizemos foi criar uma superclasse destinada apenas a definir o que é comum às subclasses dela derivadas, sem que se tenha a intenção de efetivamente instanciar objetos dessa classe, que é conhecida como classe abstrata. Outra forma de conseguir esse resultado é criando uma Interface. Uma interface define um conjunto de métodos que uma classe deve implementar, mas não define como esses métodos devem ser implementados. É utilizada quando classes não relacionadas necessitam compartilhar métodos e constantes. Isto permite que instâncias de classes não relacionadas sejam processadas de forma polimórfica, ou seja, respondam às mesmas chamadas de métodos. O programador pode criar uma interface que descreva a funcionalidade desejada e então implementar essa interface em quaisquer classes que requeiram essa funcionalidade. Utiliza-se uma interface no lugar de uma classe abstrata quando não há nenhuma implementação padrão a herdar nenhum atributo (variável de classe) e nenhum método com implementação. Uma interface é, essencialmente, uma coleção de constantes e métodos abstratos. Métodos em uma interface são sempre públicos e abstratos. Constantes em uma interface são sempre públicas, estáticas e finais. A interface resolve o problema de Java não suportar herança múltipla como outras linguagens (C++, por exemplo), de forma mais elegante, pois apenas relaciona as funcionalidades necessárias às classes. public float calcularremuneracao(){ return getsalario();

11 No nosso exemplo, se encararmos o salário a ser pago a um profissional como uma despesa, podemos observar que outras classes não relacionadas a profissionais podem também representar despesas. Por exemplo, uma fatura é uma despesa e poderíamos criar uma interface Pagamento, que fosse comum às faturas e aos profissionais, na qual houvesse um método para calcular o pagamento. Embora aplicado a coisas não relacionadas (faturas e empregados), o método tem a ver com obter algum valor a ser pago. A modelagem do sistema teria agora o aspecto da figura abaixo: Como já vimos, em Java as classes só podem ter uma superclasse pois Java não suporta herança múltipla. Em contraposição, uma classe pode implementar várias interfaces (uso da diretiva implements) além de herdar de uma classe. A interface pagamento é implementada da seguinte forma: public Interface Pagamento { public float calculardespesa();

12 A classe Profissional deve implementar a interface pagamento: public abtract class Profissional implements Pagamento{ private String cpf; private float salario; public String getcpf(){ return this.cpf; public void setcpf(string cpf){ this.cpf=cpf; public float getsalario(){ return this.salario; public void setsalario(float salario){ this.salario=salario; public abstract float calcularremuneracao(); public float calculardespesa(){ return calcularremuneracao();

13 Exercícios 1) Sobre o exemplo dado até o momento com a estrutura Profissionais, altere o projeto no NetBeans das aulas passadas para que fique igual ao explicado nesta aula. 2) Transforme a classe Medico em abstrata. Quais outras classes deveriam ser abstratas? Modifique-as. 3) Crie uma classe Vendedor que herde da classe ProfissionalRemuneracaoComissionada. A classe Vendedor deve ter um atributo final e estático que contenha a área de vendas (exemplo: farmacêutica ). 4) Crie uma interface com nome Identificacao. Crie um método na interface com a seguinte assinatura: public String getidentificacao(). A classe Profissional deve implementar a Interface, mas efetivamente postergar a implementação do método. 5) Crie a classe Fatura com os atributos valor (float), codigobarras (String) e vencimento (String). Como no diagrama, esta classe deve implementar a interface Pagamento. 6) Na classe Principal, instancie dois vendedores e dois hemoterapeutas. Imprima a área de vendas. Imprima os dados dos quatro profissionais. Faça alterações no método tostring() da classe Profissional e das classes filhas: não utilize mais o método getcrm(), getcpf() ou getcrea() na implementação das classes filhas, utilize o método getidentificacao() somente na classe Profissional; da mesma forma, não utilize mais o método getsalario(), utilize o método calculardespesa(). 7) Instancie um objeto da classe Fatura. Imprima a despesa pelo método calculardepesa().

Notas de Aula 04: Herança e polimorfismo.

Notas de Aula 04: Herança e polimorfismo. Notas de Aula 04: Herança e polimorfismo. Objetivos da aula: Introduzir o conceito de Heranças Criar uma hierarquia de classes Rever o uso de modificadores de acesso. Apresentar o conceito de polimorfismo

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

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

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-7 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando

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

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

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

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Notas de Aula 06: Programação para tipos versus Programação para interfaces

Notas de Aula 06: Programação para tipos versus Programação para interfaces Notas de Aula 06: Programação para tipos versus Programação para interfaces Objetivos da aula: Compreender o uso e a vantagem da programação para tipos Compreender o uso e a vantagem da programação para

Leia mais

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

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes - Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes

Leia mais

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes AULA 16 HERANÇA Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br REPETIÇÃO DE CÓDIGO Tomemos como exemplo a classe Funcionario, que representa o funcionário de

Leia mais

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces 0 Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces Classes Abstratas À medida que você sobe na hierarquia de herança,

Leia mais

COMPORTAMENTOS - Observações

COMPORTAMENTOS - Observações COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para

Leia mais

Programação Java (nível intermediário) 4. Polimorfismo

Programação Java (nível intermediário) 4. Polimorfismo Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo

Leia mais

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

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,Pa Palavra reservada this Em Java podemos ter um parâmetro de um método e um atributo de uma classe com o mesmo nome. Caso façamos uma referência a esta variável, pelo princípio da localidade estaremos referenciando

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 Herança Aula de Hoje Problema Considere uma empresa que tenha tipos de empregados no aplicativo de folha de pagamento Um empregado tem nome,

Leia mais

LÓGICA DE PROGRAMAÇÃO (JAVA) HERANÇA. Professor Carlos Muniz

LÓGICA DE PROGRAMAÇÃO (JAVA) HERANÇA. Professor Carlos Muniz LÓGICA DE PROGRAMAÇÃO (JAVA) Definição A herança é um princípio da POO que permite a criação de novas classes a partir de outras previamente criadas. Essas novas classes são chamadas de subclasses, ou

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

Herança e Propriedades

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

Leia mais

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

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs Programação Orientada a Objetos Professor: André Luis Meneses Silva andreluis.ms@gmail.com br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância

Leia mais

Prof. Vicente Paulo de Camargo UML - INTRODUÇÃO UML = Unified Modeling Language = linguagem de modelagem de sistemas Permite especificar, visualizar e documentar modelos de software orientados a objetos

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

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Herança Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo 11 de setembro

Leia mais

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama] [Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama] Objetivos Revisar conceitos de Orientação a Objetos Classes Objetos Encapsulamento Herança Sobrescrita de métodos Sobrecarga de métodos

Leia mais

Herança Tiago Eugenio de Melo

Herança Tiago Eugenio de Melo Herança Tiago Eugenio de Melo tiago@comunidadesol.org Herança Conceito: Herança é a capacidade de especializar tipos de objetos (classes), de forma que os tipos especializados contenham, além de características

Leia mais

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

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que

Leia mais

Classe Abstrata e Interface

Classe Abstrata e Interface Orientação a objetos com Java Classe Abstrata e Interface Byron Leite byron.leite@gmail.com 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public

Leia mais

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,

Leia mais

Computação II Orientação a Objetos

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

Leia mais

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

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão e Objetos em Java Algoritmos e Programação I Aula 9 Profa. Márcia Cristina Moraes mmoraes@inf.pucrs.br Profa. Sílvia M. W. Moraes silvia@inf.pucrs.br Prof. Marcelo H. Yamaguti yamaguti@inf.pucrs.br Prof.

Leia mais

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

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno. Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em

Leia mais

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

TÉCNICAS DE ORIENTAÇÃO A OBJETOS TÉCNICAS DE ORIENTAÇÃO A OBJETOS APLICAÇÃO EM: C# E JAVA Sumário INTRODUÇÃO... 4 PARADIGMAS DE PROGRAMAÇÃO... 5 PROGRAMAÇÃO PROCEDURAL... 5 PROGRAMAÇÃO ESTRUTURADA... 5 PROGRAMAÇÃO ORIENTADA A OBJETOS...

Leia mais

Linguagem de Programação. Diagrama de classes

Linguagem de Programação. Diagrama de classes Linguagem de Programação Diagrama de classes Joyce França Professora de Ciência da Computação - IFNMG 2 Agenda Diagrama de classes Herança Associação Agregação Exercícios 3 Diagrama de classes Mostra um

Leia mais

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

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno. Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Possibilita o reuso de classes (código-fonte) Usar quando:

Leia mais

Orientação a Objetos Classes Abstratas

Orientação a Objetos Classes Abstratas Orientação a Objetos Classes Abstratas 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

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não

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 5 Conversão de Tipos Polimorfismo O Modificador final O Modificador

Leia mais

Linguagens de Programação Aula 12

Linguagens de Programação Aula 12 Linguagens de Programação Aula 12 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introduçã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

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Programação Orientada a Objetos Flávio de Oliveira Silva 144 HERANÇA Herança é a capacidade de uma subclasse de ter acesso as propriedades da superclasse(também chamada classe base) relacionada a esta subclasse. Dessa forma os atributos e métodos de uma classe são

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

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

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

Java para Desktop. Programação Orientada à Objetos 2 JSE

Java para Desktop. Programação Orientada à Objetos 2 JSE Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona

Leia mais

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

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Professora Sheila Cáceres Variáveis locais Campos são um tipo de variável. Eles: armazenam valores por toda a vida de um objeto; e

Leia mais

Interfaces e Classes Abstratas

Interfaces e Classes Abstratas Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos

Leia mais

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes Aula 08 Encapsulamento Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Projeto Orientado a Objetos Princípios: Abstração; Encapsulamento; Modularidade.

Leia mais

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27 1. Defina os sequintes termos: (a) (1 Ponto) Polimorfismo Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27 (b) (1 Ponto) Sobrescrita de funções (c) (1 Ponto) Sobrecarga

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

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo Prof. Vicente Paulo de Camargo UML - INTRODUÇÃO UML = Unified Modeling Language = linguagem de modelagem de sistemas Permite especificar, visualizar e documentar modelos de software orientados a objetos

Leia mais

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

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes - Programação Java - Herança e Polimorfismo - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes relacionadas entre

Leia mais

Laboratório de programação II

Laboratório de programação II Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Sobrecarga de Métodos e Palavras Reservadas: this, static e final Prof. Francisco de Assis S. Santos, Dr. São José, 2014. Sobrecarga de Métodos Métodos sobrecarregados devem

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

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU Aula 10 POO 1 Classes Abstratas Profa. Elaine Faria UFU - 2019 Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos

Leia mais

UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos

UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos Objetivo da Unidade*: Conhecer e aplicar os conceitos mais importantes associados a orientação a objetos. 5.1 Métodos e atributos estáticos Atributos

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.ado o seguinte código: class valiacao { Qual fragmento de código irá compilar? a) class Prova extends valiacao { b)

Leia mais

Repetindo mais código?

Repetindo mais código? Classe Abstrata 1 Repetindo mais código? p Como esta nossa classe Funcionario e ControleBonficação; p O método registra recebe qualquer referência do tipo Funcionario, isto é, podem ser objetos do tipo

Leia mais

Linguagem de Programação II Herança

Linguagem de Programação II Herança Linguagem de Programação II Herança Prof. Alessandro Borges 2 Tópicos Reutilização de classes Delegação Herança Definição Superclasse e Subclasse A palavra reservada extends Método construtor com herança

Leia mais

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert Há situações em que não deve haver instâncias de determinadas classes Há modelos incompletos que

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

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração Java First-Tier: Aplicações Orientação a Objetos em Java (II) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Sobrecarga Um recurso usual em programação OO é o uso de sobrecarga

Leia mais

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento Orientação a objetos Programação Orientada a Objetos Alexandre César Muniz de Oliveira Linguagens orientadas a procedimentos e linguagens orientadas a objetos Unidade de programação: funções e classes

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

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

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços

Leia mais

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla. Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado

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

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

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de

Leia mais

Professor Leonardo Cabral da Rocha Soares Lattes:

Professor Leonardo Cabral da Rocha Soares Lattes: Professor Leonardo Cabral da Rocha Soares Lattes: http://lattes.cnpq.br/3184602538494393 A Herança, em programação orientada a objetos (POO), é a possibilidade de escrever novas classes partindo de classes

Leia mais

Introdução ao Java. Prof. Herbert Rausch Fernandes

Introdução ao Java. Prof. Herbert Rausch Fernandes Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos

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

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/poo

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

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 por Objectos. Java

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

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

Composição e Herança. carro meucarro = new carro();

Composição e Herança. carro meucarro = new carro(); Composição e Herança Um dos conceitos mais interessantes das linguagens orientadas a objeto é a reutilização de código. Mas para isso realmente funcionar, você tem que conseguir fazer mais do que simplesmente

Leia mais

Lição 11 Herança, polimorfismo e interfaces

Lição 11 Herança, polimorfismo e interfaces Lição 11 Herança, polimorfismo e interfaces 1 Objetivos Ao final da lição, o estudante deverá estar apto a: Definir superclasses e subclasses Criar Override de métodos de superclasses Criar métodos e classes

Leia mais

Unidade: sobrecarga, construtores e herança

Unidade: sobrecarga, construtores e herança Unidade: sobrecarga, construtores e herança 0 Unidade: sobrecarga, construtores e herança Sobrecarga Sobrecarregar (do inglês overload) um método é criar mais métodos com o mesmo nome, porém com assinaturas

Leia mais

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

Como exemplo, vamos criar uma subclasse da classe Funcionario, vista nos capítulos anteriores. HERANÇA E POLIMORFISMO Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 7 A herança é um importante recurso da programação orientada a objeto que

Leia mais

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

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

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

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 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização

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

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo PARTE II: Java e OO Interface Herança Herança e polimorfismo Classes e métodos abstratos : muitas formas de implementação de uma operação Permite esconder diferentes implementações atrás da mesma interface

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

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

Avançando em Java com Polimorfismo. Prof.: Hugo Barros

Avançando em Java com Polimorfismo. Prof.: Hugo Barros Avançando em Java com Polimorfismo Prof.: Hugo Barros Tópicos da Aula Polimorfismo: Exemplos de polimorfismo Vantagens do polimorfismo Tipos de polimorfismo Métodos Abstratos Classes Abstratas Vinculação

Leia mais

p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco

p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco 1 Expandindo o Sistema p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco class Diretor extends Funcionario { public boolean autentica(int senha)

Leia mais

Herança e Polimorfismo - Parte II -

Herança e Polimorfismo - Parte II - Herança e Polimorfismo - Parte II - Programação Orientada a Objetos Java Prof. Geraldo Braz Junior A hierarquia do exemplo DoME 2 Saída incompleta O que queremos CD: A Swingin' Affair (64 mins)* Frank

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

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

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

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores

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

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

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

Leia mais

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

Programação Orientada a Objetos

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

Leia mais

Herança. Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman SISTEMAS DE INFORMAÇÃO 1

Herança. Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman SISTEMAS DE INFORMAÇÃO 1 Herança Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman 1 1 1 Motivação Você está desenvolvendo um sistema de gerenciamento de pessoal para a USP Precisa fazer: Cadastro de alunos e professores

Leia mais