Paradigmas da Programação – Semestre 1 – Aula 6

Slides:



Advertisements
Apresentações semelhantes
Paradigmas da Programação
Advertisements

Paulo Marques Hernâni Pedroso
Entendendo as definições de classe
Interação entre objetos
Orientação a Objetos: Encapsulamento e Classificação
Orientação a Objetos: Modificador Final para Métodos e Classes
Persistência de objetos em arquivo texto usando Java
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Programação Básica em Java
Polimorfismo e Classes Abstratas Profa
Orientação a Objetos Classes
Paradigmas da Programação – Semestre 1 – Aula 5
Paradigmas da Programação – Semestre 1 – Aula 3
Capítulo 9 Herança 1.
Sobrecarga de nomes de rotinas Rotinas recursivas Invocação de rotinas
Classes & Objectos em JAVA5
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
Programação Orientada a Objetos com Java
JAVA Orientação a Objetos
Paradigmas da Programação – Semestre 1– Aula 5 Lab3
Sobrecarga e Encapsulamento
Interfaces.
Programação I Aula 2 (Métodos)
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Classes, Objetos, Atributos e Métodos JAVA
Linguagens de Programação II
Professora Lucélia Oliveira
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Sobrecarga de métodos  Definição de métodos visibilidade tipo de retorno nome do método.
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Associação entre classes  Um objeto é a representação de uma entidade do mundo real 
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Orientação a Objetos Parte II
Aula Prática 1 Monitoria IP/CC (~if669). Verificação Dinâmica de Tipos Métodos de superclasses e subclasses: Uso de métodos de subclasses quando se é.
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação Orientada a Objetos - Java
Paradigmas da Programação – Semestre 2 – Aula 13 Professor: Eduardo Mantovani Prof. Fábio de Paula Santos
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Prof. Gilberto Irajá Müller
Orientação a Objetos usando Java
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Laboratório de Programação II Método Construtor Dados e Métodos de Objetos Prof Edivaldo - Network.
Aula Prática 4 Monitoria IP/CC (~if669).
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Programação I Aula 1 Prof. Gilberto Irajá Müller Última atualização 2/3/2009.
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Paradigmas da Programação – Semestre 1 – Aula 3 Professor: Eduardo Mantovani )
Paradigmas de Programação –Aula 7 Lab 2 Professores: Eduardo Mantovani Fábio Paula Santos.
Construtores e Destrutores
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Paradigmas da Programação – Semestre 1 – Aula 8 Professor: Eduardo Mantovani )
Bruno Inojosa MCP .NET Framework
Modificadores Programação II.
Aula Prática 13 Orientação a Objeto Monitoria
Orientação a Objetos Paradigma. Davi Pires Revisão Dúvidas da aula passada? –Características de Java –Compilador vs. Interpretador.
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
Paradigmas da Programação – Semestre 1 – Aula 5 Lab Professores: Fábio Paula Santos Eduardo Mantovani.
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Paradigmas da Programação – Semestre 1 – Aula 6 Professor: Eduardo Mantovani (eduardo.mantovani@aes.edu.br)

Sobrecargas de identificadores Ocorre sempre que um identificador de atributo ou de método tem seu nome repetido em uma mesma classe, podendo, a princípio, causar ambiguidade Ocorrência de sobrecarga de identificadores de atributos Pode haver a ocorrência de parâmetros de métodos ou variáveis locais de métodos com o mesmo nome de um atributo da classe Não pode haver dois atributos com mesmo nome na mesma classe Ocorrência de sobrecarga de métodos Pode haver dois ou mais métodos em uma mesma classe que tenham o mesmo nome, desde que tenham conjuntos de parâmetros diferentes

Sobrecarga de identificadores de atributos public class Pessoa { private String nome; private String rg; public void ajustarRg(String rg) // rg é o parâmetro ou o atributo? } public String obterInicioNome() String nome; // nome é a variável local ou o atributo?

Operador this O operador this faz referência ao próprio objeto instanciado da classe, do qual o método está sendo executado Funciona como uma variável que faz referência a uma instância de classe, só que a instância referida é o próprio objeto do qual método está sendo executado Resolve o problema da ambigüidade de sobrecarga de identificadores de atributos Pode ser usado para referência aos atributos e aos métodos do próprio objeto, com o uso de . (ponto) seguido do nome do atributo ou do método Se usado sem nenhum complemento (atributo ou método) pode servir como referência ao objeto em uma passagem de parâmetro (por exemplo) Também sem a agregação de complemento, pode ser usado para invocar o construtor, desde que dentro de outro construtor (ver sobrecarga de métodos).

Operador this: exemplo public class Pessoa { private String nome; private String rg; public void ajustarRg(String rg) // rg é o parâmetro this.rg = rg; // this.rg refere-se ao atributo! } public String obterInicioNome() String nome; // nome é a variável local nome = this.nome.substring(0, 10); return nome;

Sobrecarga de métodos public class Pessoa { private String nome; private String rg; // Retorna os 10 primeiros caracteres do nome public String obterInicioNome() return obterInicioNome(10); } // Retorna os numCarac primeiros caracteres do nome public String obterInicioNome(int numCarac) String nome; nome = this.nome.substring(0, numCarac); return nome;

Sobrecarga de métodos: conceitos Pode haver qualquer número de métodos com o mesmo nome em uma única classe, desde que o conjunto de parâmetros seja diferente: Em número Em tipo Em número e em tipo O nome do método junto com seu conjunto de parâmetros constituem a assinatura do método Não pode haver 2 métodos com a mesma assinatura em uma classe O reconhecimento da sobrecarga que será executada é feito pela assinatura completa Faz-se uso de sobrecarga de métodos quando há necessidade de oferecer maneiras diferentes de executar a mesma ação

Sobrecarga de métodos: seleção de sobrecarga public class ManipuladorPessoas { public void metodoQualquer() Pessoa p = new Pessoa(); String n10 = p.obterInicioNome(); String n20 = p.obterInicioNome(20); }

Sobrecarga de métodos construtores Construtores também podem ser sobrecarregados A seleção da sobrecarga a ser executada é dada no momento do instanciamento, de acordo com o número/tipos dos parâmetros informados junto do operador new A intenção é oferecer diferentes maneiras de inicializar os objetos instanciados da classe public class Pessoa { private String nome; private String rg; public Pessoa() { this.nome = “Sem nome”; this.rg = “0000”; } public Pessoa(String nome, String rg) { this.nome = nome; this.rg = rg;

Sobrecarga de métodos construtores public class ManipuladorPessoas { public void metodoQualquer() Pessoa indigente = new Pessoa(); Pessoa conhecido = new Pessoa(“José da Silva”, “123.456”); }

Uso do operador this para invocar construtores Se utilizado sem complemento e acompanhado de parênteses (execução de método), o operador this serve para invocar uma sobrecarga de construtor Esse recurso SÓ pode ser utilizado a partir de outro construtor

Uso do operador this para invocar construtores public class Pessoa { String nome; String rg; public Pessoa() { this(“Sem nome”, “0000”); } public Pessoa(String nome, String rg) { this.nome = nome; this.rg = rg;

Exercícios Modele as classes Veiculo e Combustivel com os parâmetros dos modificadores causando sobrecarga de identificadores de atributos Modele a classe Veiculo com uma sobrecarga do método calcularCustoKM de modo que outro valor de consumo possa ser informado Modele a classe Veiculo de modo que os atributos possam ser informados em uma sobrecarga do construtor Modele a classe Combustivel para que os atributos possam ser informados em uma sobrecarga do construtor Faça a implementação das classes modeladas

Implementação a partir do diagrama de classe UML Combustivel Veiculo nome: String preco: double placa: String modelo: String combustivel: Combustivel consumo:double +Combustivel() +obterNome():String +ajustarNome(novoNome:String):void +obterPreco():double +ajustarPreco(novoPreco:double):void +Veiculo() +obterPlaca():String +ajustarPlaca(novaPlaca:String):void +obterModelo():String +ajustarModelo(novoModelo:String):void +obterCombustivel():Combustivel +ajustarCombustivel(novoCombustivel: Combustivel):void +obterConsumo():double +ajustarConsumo(novoConsumo:double): void +calcularCustoKM():double O cálculo do custo do KM rodado é feito com base no consumo e no preço do combustível