PROGRAMAÇÃO ORIENTADA A OBJETOS: HERANÇA
|
|
|
- Alana Osório Palha
- 9 Há anos
- Visualizações:
Transcrição
1 COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: HERANÇA FOZ DO IGUAÇU 2013
2 SUMÁRIO 4 HERANÇA SUPERCLASSES E SUBCLASSES Herança Básica O MODIFICADOR PROTECTED Relacionamento entre Superclasse e Subclasse CONSTRUTORES EM SUBCLASSES Usar super para Chamar Construtores de Superclasse EXERCÍCIOS REFERÊNCIA BIBLIOGRÁFICA... 15
3 4 HERANÇA A programação orientada a objetos (POO) é uma filosofia de programação popular e poderosa. Uma das principais técnicas da POO é conhecida como herança. Herança significa que uma forma muito geral de uma classe pode ser definida e compilada. Mais tarde, as versões mais especializadas da classe podem ser definidas ao começar com a classe já definida e adicionando as variáveis de instância e métodos mais especializados. As classes especializadas herdam os métodos e variáveis de instância da classe geral previamente definida. Com a herança é possível economizar tempo durante o desenvolvimento do programa, também aumenta a probabilidade de um sistema ser aplicado e mantido de forma eficaz. 4.1 SUPERCLASSES E SUBCLASSES Muitas vezes, um objeto de uma classe é um objeto de outra classe também. Superclasses tendem a ser mais geral e subclasses. A Tabela 1 enumera vários exemplos simples de superclasses e subclasses. Superclasse Subclasse Estudante Estudante de pós-graduação, estudante de graduação Forma Círculo, triângulo, retângulo, esfera, cubo Financiamento Financiamento de carro, financiamento de casa, hipoteca Empregado Professor, funcionário Conta bancária Conta corrente, conta poupança Tabela 1 Exemplos de herança. Cada objeto da subclasse é um objeto da superclasse, e uma superclasse pode ter muitas subclasses. Por exemplo, a superclasse veículo representa todos os veículos, incluindo carros, caminhões, barcos, bicicletas e assim por diante.
4 4.1.1 Herança Básica Para herdar uma classe, o programador incorpora a definição de uma classe para outra usando a palavra-chave extends. O programa a seguir cria uma superclasse chamadas A e uma subclasse chamada B. O Quadro 1 cria uma superclasse. O quadro 2 cria uma subclasse a partir da classe A existente. O quadro 3 é uma aplicação básica de herança. Quadro 1 Superclasse ClasseA 1 package heranca; 2 public class ClasseA { 3 int i, j; 4 void mostaij(){ 5 System.out.println("i e j: "+i+" "+j); 6 } 7 } Quadro 2 Subclasse ClasseB 1 package heranca; 2 public class ClasseB extends ClasseA { 3 int k; 4 5 void mostrak(){ 6 System.out.println("k: "+k); 7 } 8 9 void soma(){ 10 System.out.println("i+j+k: "+(i+j+k)); 11 } 12 }
5 Quadro 3 Aplicação básica de herança 1 package heranca; 2 public class HerancaSimples { 3 public static void main(string[] args) { 4 ClasseA objsuper = new ClasseA(); 5 ClasseB objsub = new ClasseB(); 6 7 objsuper.i = 10; 8 objsuper.j = 20; 9 System.out.println("Conteúdo do super objeto: "); 10 objsuper.mostaij(); 11 System.out.println(); 12 objsub.i = 7; 13 objsub.j = 8; 14 objsub.k = 9; 15 System.out.println("Conteúdo do sub objeto: "); 16 objsub.mostaij(); 17 objsub.mostrak(); 18 System.out.println(); 19 System.out.println("A soma de i, j e k no sub objeto: "); 20 objsub.soma(); 21 } 22 } 4.2 O MODIFICADOR PROTECTED Os modificadores de visibilidade são usados para controlar o acesso aos membros de uma classe. A visibilidade desempenha um papel importante no processo da hereditariedade também. Qualquer método ou variável pública em uma classe pai pode ser explicitamente referenciada pelo nome da classe filho, e através de objetos dessa classe filho. Por outro lado, métodos e variáveis privadas da classe
6 pai não podem ser referenciadas na classe filho ou através de um objeto da classe filho. Esta situação provoca um dilema. Portanto, Java fornece o modificador visibilidade: protected. Quando uma variável ou método é declarado com visibilidade protegida, uma classe derivada pode referenciá-lo. A visibilidade protected permite que a classe mantenha algumas propriedades de encapsulamento. Uma variável ou método declarado com visibilidade protected pode ser acessado por qualquer classe no mesmo pacote. Em um diagrama UML, a visibilidade protected é indicada precedendo o membro protegido com uma marca de hash (#) Relacionamento entre Superclasse e Subclasse Usando uma hierarquia de herança, contendo os tipos de empregados em uma aplicação de folha de pagamento de uma empresa, os funcionários comissionados (serão representados como objetos de uma superclasse) são pagos com uma porcentagem de suas vendas, enquanto os funcionários assalariados comissionados (serão representados como objetos de uma subclasse) recebem o salário base acrescido de um percentual de suas vendas. O quadro 4 cria uma classe chamada FuncionarioComissionado, onde as variáveis de instância da são declarados como protected, permitindo que a subclasse FuncionarioAssalariadoComissionado, criada no quadro 5, acesse os dados diretamente. Quadro 4 Classe FuncionarioComissionado representa um funcionário que é pago com uma porcentagem das vendas 1 package heranca; 2 public class FuncionarioComissionado { 3 protected String nome; 4 protected String sobrenome; 5 protected int cpf; 6 protected double vendabruta;
7 7 protected double percentualcomissao; 8 9 public String getnome() { 10 return nome; 11 } 12 public void setnome(string nome) { 13 this.nome = nome; 14 } 15 public String getsobrenome() { 16 return sobrenome; 17 } 18 public void setsobrenome(string sobrenome) { 19 this.sobrenome = sobrenome; 20 } 21 public int getcpf() { 22 return cpf; 23 } 24 public void setcpf(int cpf) { 25 this.cpf = cpf; 26 } 27 public double getvendabruta() { 28 return vendabruta; 29 } 30 public void setvendabruta(double vendabruta) { 31 if (vendabruta >= 0.0) 32 this.vendabruta = vendabruta; 33 else 34 throw new IllegalArgumentException( 35 "A venda bruta deve ser maior ou igual a 0.0"); 36 } 37 public double getpercentualcomissao() { 38 return percentualcomissao; 39 }
8 40 public void setpercentualcomissao(double percentualcomissao) { 41 if (percentualcomissao > 0.0 && percentualcomissao < 1.0) 42 this.percentualcomissao = percentualcomissao; 43 else 44 throw new IllegalArgumentException( 45 "O percentual de comissão deve ser maior que 0.0 e menor que 1.0"); 46 } 47 public double calcularganhos(){ 48 return percentualcomissao * vendabruta; 49 } // indica que este método substitui um método superclasse 51 public String tostring(){ 52 return String.format("%s: %s %s\n%s: %s\n%s: %.2f\n%s: %2.f", 53 "Funcionário Comissionado", nome, sobrenome, 54 "CPF", cpf, "Total de vendas", vendabruta, 55 "Percentual de comissão", percentualcomissao); 56 } 57 } Sempre que uma subclasse precisar fazer referência a sua superclasse imediata, pode fazê-la através do uso de uma palavra-chave super. Quadro 5 A classe FuncionarioAssalariadoComissionado herda as variáveis de instância protegida da classe FuncionarioComissionado 1 package heranca; 2 public class FuncionarioAssalariadoComissionado extends FuncionarioComissionado{ 3 private double salariobase; 4 //construtor 5 public FuncionarioAssalariadoComissionado(String nome, 6 String sobrenome, int cpf, double vendas, 7 double percentual, double salario){ 8 super(nome, sobrenome, cpf, vendas, percentual);
9 9 setsalariobase(salario); 10 } 11 public void setsalariobase(double salario){ 12 if (salario >= 0.0) 13 salariobase = salario; 14 else 15 throw new IllegalArgumentException( 16 "O salário base deve ser maior ou igual a 0.0"); 17 } 18 public double getsalariobase(){ 19 return salariobase; 20 } 21 //calcula ganhos //indica que este método substitui um método superclasse 23 public double calcularganhos(){ 24 return salariobase+(percentualcomissao * vendabruta); 25 } 27 public String tostring(){ 28 return String.format( 29 "%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f\n%s: %.2f", 30 "Funcionário assalariado com comissão", nome, sobrenome, 31 "CPF", cpf, "Total de vendas", vendabruta, "Percentual Comissão", 32 percentualcomissao, "Salário base", salariobase); 33 } 34 }
10 4.3 CONSTRUTORES EM SUBCLASSES Instanciar um objeto de subclasse inicia uma cadeia de chamadas de construtor no qual o construtor da subclasse, antes de realizar suas próprias tarefas, invoca seu construtor direto da superclasse explícita através da referência super ou chama implicitamente o construtor default da superclasse ou construtor sem argumento. Da mesma forma, se a superclasse for derivada de outra classe, como são, evidentemente, todas as classes exceto Object o construtor da superclasse invoca o construtor da classe seguinte na hierarquia, e assim por diante. O último construtor chamado na cadeia é sempre o construtor para a classe de Object Usar super para Chamar Construtores de Superclasse O quadro 6 apresenta a classe Caixa e seus diversos construtores. Quadro 6 Implementação da classe Caixa 1 package heranca; 2 public class Caixa { 3 private double largura; 4 private double altura; 5 private double profundidade; 6 //construtor clone de um objeto 7 Caixa(Caixa ob){//passa o objeto ao construtor 8 largura = ob.largura; 9 altura = ob.altura; 10 profundidade = ob.profundidade; 11 } 12 //construtor usado quando todas as dimensões são especificadas 13 Caixa(double l, double a, double p){ 14 largura = l;
11 15 altura = a; 16 profundidade = p; 17 } 18 //construtor usado quando não há especificação de dimensões 19 /* 20 * usa -1 para indicar uma caixa inutilizada 21 */ 22 Caixa(){ 23 largura = -1; 24 altura = -1; 25 profundidade = -1; 26 } 27 //construtor usado quando um cubo é criado 28 Caixa(double comp){ 29 largura = altura = profundidade = comp; 30 } 31 double volume(){ 32 return largura*altura*profundidade; 33 } 34 } A classe PesoCaixa mostra como super é usado. No quadro 7, PesoCaixa() chama super com os argumentos l, a, e d. Isso faz com que o construtor Caixa () seja chamado, inicializando largura, altura e profundidade com esses valores. Quadro 7 Implementação da classe PesoCaixa 1 package heranca; 2 public class PesoCaixa extends Caixa{ 3 double peso; 4 //construtor clone de um objeto 5 PesoCaixa(PesoCaixa ob){ 6 super(ob); 7 peso = ob.peso;
12 8 } 9 //construtor quando todos os parâmetros são especificados 10 PesoCaixa(double l, double a, double d, double p){ 11 super (l, a, d); 12 peso = p; 13 } 14 //construtor padrão 15 PesoCaixa(){ 16 super(); 17 peso = -1; 18 } 19 //construtor usado quando um cubo é criado 20 PesoCaixa(double comp, double p){ 21 super(comp); 22 peso = p; 23 } 24 } Uma vez que os construtores podem ser sobrecarregados, super pode ser chamado usando qualquer forma definida pela superclasse. O construtor executado será aquele que coincide com os argumentos. A implementação PesoCaixa fornece construtores para as várias maneiras que uma caixa pode ser construída. Em cada caso, super é chamado utilizando os argumentos apropriados. 4.4 EXERCÍCIOS 1. Suponha que você está projetando um programa de manutenção de registros que tem registros de empregados assalariados e empregados horistas. Há uma hierarquia natural para agrupar essas classes. Trata-se de todas as classes de pessoas que compartilham a propriedade de ser empregados. Os funcionários que recebem salário por hora são um subconjunto de funcionários. O outro subgrupo é composto por assalariados que recebem um
13 salário fixo por mês. Embora o programa não precise de nenhum tipo correspondente ao conjunto de todos os funcionários, pensar em termos do conceito mais geral de funcionários pode ser útil. Por exemplo, todos os funcionários têm um nome e uma data de admissão, e os métodos para criar e alterar nomes e datas de contratação será o mesmo para funcionários assalariados e de hora em hora. As classes para os funcionários horistas e assalariados podem ser subdivididos conforme diagramado na figura 1. Figura 1 Hierarquia de classes. No Java, defina uma classe chamada Funcionario que inclui todos os empregados (assalariados ou por hora) e, em seguida, use essa classe para definir as classes de funcionários horistas e assalariados. Classe Funcionário: Todos os objetos têm um nome e data de admissão. Uma string de nome "Sem nome" indica que não há ainda nome especificado. Uma data de admissão 1 de janeiro de 1000 indica nenhuma data de contratação real ainda especificada. É necessário criar uma classe Data. Pré-requisito do construtor Funcionário com parâmetro: Nenhum nome ou data de admissão ser nulo.
14 Classe para funcionários horistas: A classe Funcionario é a classe base (superclasse) e Horista é a classe derivada (subclasse). Todos os objetos têm um nome, data de admissão, taxa de salário não negativa, e número de horas trabalhadas não negativa. Uma string de nome "Sem nome" indica que não há nome verdadeiro ainda especificado. A data de admissão de 01 de janeiro de 1000 indica que não há data de contratação real ainda especificada. Pré-requisito: Nenhum nome ou data de admissão ser nulo; taxa salarial e horas não podem ser negativas. A multiplicação das horas trabalhadas pela taxa salarial retorna o pagamento do mês. O método parastring é substituído por isso é diferente na classe derivada Horista do que na classe base Funcionário. Classe Assalariado: Todos os objetos têm nome, data de admissão, e salário não negativo. Uma cadeia de nome "Sem nome" indica que não há nome verdadeiro ainda especificado. A data de admissão 1 de janeiro de 1000 indica sem data de contratação real ainda especificada. Pré-requisito: nenhum nome ou data de admissão podem ser nulos; e salário não pode ser negativo. Pagamento retorna a divisão de salário por Crie um aplicativo que utilize a classe horista. Cadastre um funcionário, sua data de admissão, valor da hora trabalhada e quantidade de horas trabalhadas. Mostre o valor do pagamento desse funcionário. 3. Suponha que uma classe chamada DescontoVenda é uma classe derivada de uma classe chamada Venda. A classe Venda tem as variáveis de instância preço e número de itens. Será que um objeto da classe DescontoVenda também tem as variáveis de instância preço e número de itens? 4. Suponha que a classe DescontoVenda é uma classe derivada de uma classe chamada Venda, e a classe Venda tem os métodos públicos gettotal e getimposto. Será que um objeto da classe DescontoVenda terá esses mesmos
15 métodos? Se for assim, estes métodos têm de executar as mesmas ações exatas na classe DescontoVenda como na classe Venda? 5. Crie uma aplicação que instancie um objeto para um funcionário horista e para um funcionário assalariado. Atribua valores aos dois funcionários e mostre o salário a ser pago para eles. 6. Defina a classe EmpregadoIntitulado que é uma classe derivada da classe base Assalariado. A classe EmpregadoIntitulado tem uma variável de instância adicional do tipo String chamada título. Ela também tem dois métodos adicionais: gettitulo, que não tem argumentos e retorna um String, e settitulo, que é um método vazio que recebe um argumento do tipo String. Também substitui (redefine) a definição do método para getnome, de modo que a string retornada inclui o título, bem como o nome do funcionário. 7. A partir do diagrama de classes UML da figura 2 desenvolva o programa Palavras. Figura 2 Diagrama de classes UML. 4.5 REFERÊNCIA BIBLIOGRÁFICA DEITEL, Paul; DEITEL, Harvey. Java for programmers. 2nd ed. Boston: Pearson Education, SAVITCH, Walter. Absolute Java, 5th Ed. Boston: Pearson, SCHILDT, Herbert. Java: The Complete Reference. 7th ed. US: McGraw-Hill, 2007.
PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA
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,
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
PROGRAMAÇÃO ORIENTADA A OBJETOS: CONSTRUTORES
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: CONSTRUTORES FOZ DO IGUAÇU 2013 LISTA DE FIGURAS FIGURA 1
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
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
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(){
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 [email protected] Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
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
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
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
Aula 7 POO 1 Herança. Profa. Elaine Faria UFU
Aula 7 POO 1 Herança Profa. Elaine Faria UFU - 2019 Problema Problema As classes Funcionário e Estudante compartilham alguns atributos, mas não todos Não é possível utilizar uma classe para representar
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é [email protected] http://docente.ifsc.edu.br/mello/poo 11 de setembro
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
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?
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
Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs
Programação Orientada a Objetos Professor: André Luis Meneses Silva [email protected] br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância
POO Fundamentos Parte III. Professor Vicente Paulo de Camargo
POO Fundamentos Parte III Professor Vicente Paulo de Camargo PROGRAMAÇÃO ORIENTADA A OBJETOS HERANÇA SIMPLES Mecanismo que permite a uma classe, denominada de SUBCLASSE ou CLASSE FILHA, herdar todos os
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
A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas
Herança e Polimorfismo Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Revisando -Herança Estrutura Hierárquica e modular Projeção de classes genéricas que podem ser especializadas
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
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
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
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
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
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
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
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
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
Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos
e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança
Programação Orienta a Objetos
Programação Orienta a Objetos Linguagem de Programação 1 Os atores principais do paradigma de projetos orientados a objetos são chamados de objetos. Um objeto se origina de uma classe, que é uma especificação
LISTA DUPLAMENTE ENCADEADA
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO LISTA DUPLAMENTE ENCADEADA FOZ DO IGUAÇU 2013 LISTA DE QUADROS QUADRO 1 EXEMPLO DE UM NÓ PARA
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
Palavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
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 [email protected] Profa. Sílvia M. W. Moraes [email protected] Prof. Marcelo H. Yamaguti [email protected] Prof.
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
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
Linguagem de Programação IV Introdução
Linguagem de Programação IV Introdução Prof. Alessandro Borges 2 Tópicos Orientação a objetos Classe Objeto Abstração Encapsulamento Herança Polimorfismo Plataforma Java 3 4 POO é um paradigma de programação
Programação Orientada a Objetos SANTOS, Rafael (PLT)
Programação Orientada a Objetos SANTOS, Rafael (PLT) Possibilita atribuições em sequência na mesma instrução Retorna o valor atribuído Atribuições compostas: incluem a própria variável: +=, *=, -=, etc
Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos [email protected] Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA
PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA PÁTIO DE MATERIAIS Discente: Nielson Soares Disciplina: Algoritmo e Estrutura de Dados INTRODUÇÃO Orientação a objetos. Linguagem de programação JAVA. Pátio de matérias
Programação Orientada a Objetos II
Programação Orientada a Objetos II Introdução Prof. Rodrigo Rocha [email protected] www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha [email protected] Ementa Introdução ao Desenvolvimento
Visibilidade e Encapsulamento
Visibilidade e Encapsulamento Professor: Ricardo Luis dos Santos IFSUL 2016 Agenda Pacotes Visibilidade Encapsulamento Hands-On 2 Pacotes Em Java, a visibilidade ou grau de acesso a um determinado atributo
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é [email protected] http://docente.ifsc.edu.br/mello/poo
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
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,
Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
6 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
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
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é [email protected] http://docente.ifsc.edu.br/mello/poo
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: ------------------------------------------------------------------------------------------------------
Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes [email protected] 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto
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)
Linguagem de Programação II Importando Classes/Pacotes
Linguagem de Programação II Importando Classes/Pacotes Prof. Alessandro Borges 2 Tópicos Pacotes Usando classes do mesmo pacote Importando classes de pacotes diferentes 3 Pacotes 4 Pacotes Como visto em
CLASSES, OBJETOS, MÉTODOS E STRING
1 CLASSES, OBJETOS, MÉTODOS E STRING Construir software rapidamente, corretamente e economicamente é um objetivo difícil de alcançar. Objetos, ou, mais precisamente as classes de objetos, são, essencialmente,
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
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
Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos
Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans Roteiro Introdução Conceitos de Oientação a Objetos A Linguagem Java NetBeans (www.netbeans.org) Fernando Vieira Paulovich [email protected]
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
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
Introdução à Programação. Encapsulamento e Herança
Introdução à Programação Encapsulamento e Herança Tópicos da Aula Hoje, aprenderemos conceitos mais avançados de Orientação a Objetos Encapsulamento Usando modificadores de acesso em C++ Herança Importância
Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga
Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Professora Sheila Cáceres Sobrecarga (overloading) Na mesma classe podemos definir vários métodos com o mesmo nome Sobrecarga O tipo
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
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
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
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 [email protected] Fonte: Material da Profª Karina Oliveira Possibilita o reuso de classes (código-fonte) Usar quando:
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
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
Python Orientação a Objetos. Introdução à Programação SI2
Python Orientação a Objetos Introdução à Programação SI2 Herança Pessoa Aluno Professor Herança Animal Mamifero Ave Cachorro Gato Gavião Galinha Herança Uma classe pode herdar a definição de outra classe:
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
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
Análise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU
Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for
Programação Orientada a Objetos
Herança Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Herança 1 Reutilização / Reuso São palavras-chave no conceito de herança; Reutilizar um código que já tenha sido escrito, e que já esteja
Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.
Orientação a Objetos Revisão Conceitos CLASSE CLASSIFICAÇÃO GENERALIZAÇÃO ESPECIALIZAÇÃO HERANÇA INTERFACES POLIMORFISMO SOBRECARGA ENCAPSULAMENTO ABSTRAÇÃO MODULARIZAÇÃO 9 CLASSE Classe é um agrupamento
Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos
Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis
PROGRAMAÇÃO ORIENTADA A
PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, MS M.Sc. [email protected] ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos
