5 Reuso de Classes. Desenvolvimento OO com Java. Vítor E. Silva Souza
|
|
|
- Jorge Salgado Macedo
- 8 Há anos
- Visualizações:
Transcrição
1 Desenvolvimento OO com Java 5 Reuso de Classes Vítor E. Silva Souza ([email protected]) ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Este obra foi licenciada sob uma Licença Creative Commons Atribuição 3.0 Não Adaptada.
2 Obje%vos da parte 5 Apresentar os conceitos de reu%lização de código em programação Java: Composição e herança; Sobrescrita de métodos; A classe java.lang.object; O especificador protected; A palavra- chave final. Desta forma: Aumentar a capacidade de desenvolvimento de código para e com reuso, tornando- se mais produ%vo. Maio 2013 O Paradigma Orientado a Objetos 2
3 Reuso / reu%lização Para entregar sosware de qualidade em menos tempo, é preciso reu%lizar; Copy & paste não é reuso! Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos; Mecanismo baseado no conceito de classes: Composição ( tem um ); Herança ou derivação ( é um ). Maio 2013 O Paradigma Orientado a Objetos 3
4 Composição Criação de uma nova classe usando classes existentes como atributos; Relacionamento tem um : uma conta tem um dono (cliente), um cliente tem um nome (string); Vimos como fazer isso no capítulo passado: Atributos primi%vos e referências a objetos; Operadores de seleção; Inicialização (zerar e atribuir valor inicial); O valor null; Atributos está%cos. Maio 2013 O Paradigma Orientado a Objetos 4
5 Composição class Aleatorio { int numero; Aleatorio(int max) { numero = new Random().nextInt(max); public class NumeroAleatorio { private String nome; private Aleatorio valor; NumeroAleatorio(String nome, int valor) { this.nome = nome; this.valor = new Aleatorio(valor); public static void main(string[] args) { NumeroAleatorio n; n = new NumeroAleatorio("Número secreto", 50); Maio 2013 O Paradigma Orientado a Objetos 5
6 Herança Criação de novas classes derivando classes existentes; Relacionamento é um [sub%po de] : um livro é um produto, um administrador é um usuário; Uso da palavra- chave extends; A palavra- chave é suges%va a classe que está sendo criada estende outra classe: Par%ndo do que já existe naquela classe... Pode adicionar novos recursos; Pode redefinir recursos existentes. Maio 2013 O Paradigma Orientado a Objetos 6
7 Sintaxe Sintaxe: class Subclasse extends Superclasse { Semân%ca: A subclasse herda todos os atributos e métodos que a superclasse possuir; Subclasse é uma derivação, um sub%po, uma extensão da superclasse. Maio 2013 O Paradigma Orientado a Objetos 7
8 Herança public class Produto { protected String nome; protected double preco; public Produto(String nome, double preco) { this.nome = nome; this.preco = preco; public boolean ehcaro() { return (preco > 1000); /* Métodos de acesso... */ Maio 2013 O Paradigma Orientado a Objetos 8
9 Herança public class Livro extends Produto { private String autor; private int paginas; public Livro(String nome, double preco, String autor, int paginas) { super(nome, preco); this.autor = autor; this.paginas = paginas; public boolean ehgrande() { return (paginas > 200); Maio 2013 O Paradigma Orientado a Objetos 9
10 Herança public class Loja { public static void main(string[] args) { Livro l; l = new Livro("Linguagem de Programação", 74.90, "Flávio Varejão", 334); System.out.println(l.ehCaro()); System.out.println(l.ehGrande()); Maio 2013 O Paradigma Orientado a Objetos 10
11 Subclasses herdam membros Livro possui autor e paginas (definidos na própria classe); Livro possui nome e preco (definidos na superclasse); Livro pode receber mensagens ehgrande() (definida na própria classe); Livro pode receber mensagens ehcaro() (definida na superclasse). Maio 2013 O Paradigma Orientado a Objetos 11
12 Sinônimos Superclasse; Classe base; Classe pai/mãe; Classe ancestral; Etc. Subclasse; Classe derivada; Classe filha; Classe descendente; Etc. Maio 2013 O Paradigma Orientado a Objetos 12
13 Sobrescrita de métodos Se um método herdado não sa%sfaz, podemos redefini- lo (sobrescrevê- lo): public class Livro extends Produto { /* Definições anteriores... */ // Livros acima de R$ 200 são caros! public boolean ehcaro() { return (preco > 200); Maio 2013 O Paradigma Orientado a Objetos 13
14 Sobrescrita de métodos Métodos sobrescritos podem chamar sua versão na superclasse usando a palavra super: public class Produto { /*... */ public void imprimir() { System.out.println(nome + "," + preco); public class Livro extends Produto { /*... */ public void imprimir() { super.imprimir(); System.out.println(autor + "," + paginas); Maio 2013 O Paradigma Orientado a Objetos 14
15 Chamando o construtor da superclasse public class Livro extends Produto { /*... */ public Livro(String nome, double preco, String autor, int paginas) { super(nome, preco); this.autor = autor; this.paginas = paginas; public class Produto { /*... */ public Produto(String nome, double preco) { this.nome = nome; this.preco = preco; Maio 2013 O Paradigma Orientado a Objetos 15
16 A classe Object Em Java, todos os objetos par%cipam de uma mesma hierarquia, com uma raiz única; Esta raiz é a classe java.lang.object. class Produto { /* É equivalente a: */ class Produto extends Object { Maio 2013 O Paradigma Orientado a Objetos 16
17 A classe Object Possui alguns métodos úteis: clone(): cria uma cópia do objeto (uso avançado); equals(object o): verifica se objetos são iguais; finalize(): chamado pelo GC (não é garan%a); getclass(): retorna a classe do objeto; hashcode(): função hash; notify(), notifyall() e wait(): para uso com threads; tostring(): converte o objeto para uma representação como String. Maio 2013 O Paradigma Orientado a Objetos 17
18 O método tostring() tostring() é chamado sempre que: Tentamos imprimir um objeto; Tentamos concatená- lo com uma string. public class Loja { public static void main(string[] args) { Produto p = new Produto("CD", 30.0); System.out.println(p); // Resultado (tostring() herdado de Object): // Produto@10b62c9 Maio 2013 O Paradigma Orientado a Objetos 18
19 O método tostring() class Produto { /*... */ public String tostring() { return nome + " (R$ " + preco + ")"; public class Loja { public static void main(string[] args) { Produto p = new Produto("CD", 30.0); System.out.println(p); // Resultado (tostring() sobrescrito): // CD (R$ 30.0) Maio 2013 O Paradigma Orientado a Objetos 19
20 Inicialização da classe base Se um Livro é um Produto, para criarmos um livro precisamos antes criar um produto. class Computador { public Computador() { System.out.println("Computador()"); class Notebook extends Computador { public Notebook() { System.out.println("Notebook()"); Maio 2013 O Paradigma Orientado a Objetos 20
21 Inicialização da classe base O construtor base é chamado automa%camente; Chamada implícita à super(); O construtor default também faz isso. public class Teste { public static void main(string[] args) { new Notebook(); // Resultado: // Computador() // Notebook() Maio 2013 O Paradigma Orientado a Objetos 21
22 Atenção à ordem de construção class Computador { public Computador() { System.out.println("Computador()"); ligar(); public void ligar() { class Notebook extends Computador { private int codigo; public Notebook() { System.out.println("Notebook()"); codigo = 12345; public void ligar() { System.out.println("Código " + codigo); Maio 2013 O Paradigma Orientado a Objetos 22
23 Atenção à ordem de construção O construtor da superclasse é chamado antes do código receber seu valor: public class Teste { public static void main(string[] args) { new Notebook(); // Resultado: // Computador() // Código 0 // Notebook() Maio 2013 O Paradigma Orientado a Objetos 23
24 Construtores sem parâmetros class Pessoa { private String nome; public Pessoa(String nome) { this.nome = nome; class Aluno extends Pessoa { // Teste.java:28: cannot find symbol // symbol : constructor Pessoa() // location: class Pessoa // class Aluno extends Pessoa { // ^ // 1 error Maio 2013 O Paradigma Orientado a Objetos 24
25 Construtores com parâmetros Aluno não define construtor: ganha um default; Pessoa define um construtor com parâmetro: não ganha construtor default; Construtor default tenta chamar construtor sem parâmetro na superclasse (Pessoa); Pessoa não possui construtor sem parâmetro! Maio 2013 O Paradigma Orientado a Objetos 25
26 Construtores com parâmetro A solução é chamar o construtor explicitamente; Assim como this(), super() deve ser o primeiro comando do construtor. class Aluno extends Pessoa { public Aluno() { super("sem nome"); public Aluno(String nome) { super(nome); Maio 2013 O Paradigma Orientado a Objetos 26
27 Composição vs. herança Use herança quando: Uma classe representa um sub%po de outra classe; Construção de famílias de %pos; Use com cuidado! Use composição quando: Uma classe representa algo que faz parte de outra; Prefira composição à herança. Os dois conceitos são u%lizados em conjunto a todo momento! Maio 2013 O Paradigma Orientado a Objetos 27
28 Composição vs. herança class Lista { public void adic(int pos, Object obj) { public Object obter(int pos) { public void remover(int pos) { // Uma pilha é uma lista? class Pilha1 extends Lista { // Ou uma pilha tem uma lista? class Pilha2 { private Lista elementos; public void empilha(object obj) { public Object desempilha() { Maio 2013 O Paradigma Orientado a Objetos 28
29 O especificador de acesso protected Como já vimos, protected é um especificador de acesso que: Permite acesso interno (à própria classe); Permite acesso às classes do mesmo pacote; Permite acesso às subclasses (do mesmo ou de outro pacote); Não permite acesso às demais classes. Maio 2013 O Paradigma Orientado a Objetos 29
30 Membros protegidos class A { int x = 10; protected void print() { System.out.println(x); protected void incr() { x++; import letras.*; public class Um extends A { public void g() { incr(); // OK! print(); // OK! // Erro: x++; public class B { A a = new A(); public void f() { a.x = 15; a.print(); Maio 2013 O Paradigma Orientado a Objetos 30
31 Regra de bolso do ocultamento De maneira geral: Atributos de uma classe devem ser privados; Se a classe possui filhas, atributos podem ser protegidos ou possuir métodos de acesso protegidos; Métodos que pertencem à interface devem ser públicos; Alguns métodos podem ser u%lizados internamente e, portanto, serem privados ou protegidos. Maio 2013 O Paradigma Orientado a Objetos 31
32 Vantagens da herança Suportar do desenvolvimento incremental; Classes já testadas podem ser reu%lizadas; Economia de tempo. Relacionamento é um : Permite subs%tuir a classe base por uma subclasse quando a primeira é esperada; Propriedade que chamamos de polimorfismo; Veremos em mais detalhes no próximo capítulo. Maio 2013 O Paradigma Orientado a Objetos 32
33 Polimorfismo class Forma { public void desenhar() { System.out.println("Forma"); class Circulo extends Forma { public void desenhar() { System.out.println("Círculo"); class Quadrado extends Forma { /*... */ class Triangulo extends Forma { /*... */ Maio 2013 O Paradigma Orientado a Objetos 33
34 Polimorfismo public class Teste { private static void desenha(forma[] fs) { for (int i = 0; i < fs.length; i++) fs[i].desenhar(); public static void main(string[] args) { Forma[] formas = new Forma[] { new Circulo(), new Forma(), new Quadrado(), new Triangulo() ; desenha(formas); Maio 2013 O Paradigma Orientado a Objetos 34
35 Upcas%ng (ampliação) Nome dado à conversão implícita de uma subclasse para uma superclasse: class Teste { public static void inverter(forma f) { System.out.println("Inverte " + f); public static void main(string[] args) { Circulo c = new Circulo(); inverter(c); // Upcasting! Forma f = new Quadrado(); // Upcasting! Maio 2013 O Paradigma Orientado a Objetos 35
36 Recapitulando... O que já aprendemos: Podemos fazer reuso com composição ou herança; Os dois conceitos são muito usados em conjunto; Subclasses herdam membros da superclasse; Subclasses podem sobrescrever métodos; Classe java.lang.object é raiz da hierarquia; A subclasse chama o construtor da superclasse; protected é um friendly extensível às subclasses. Prosseguindo... É possível definir uma classe como não herdável? Maio 2013 O Paradigma Orientado a Objetos 36
37 A palavra reservada final Significa Isto não pode ser mudado ; Dependendo do contexto, o efeito é levemente diferente; Pode ser usada em: Dados (atributos / variáveis locais); Métodos; Classes. Obje%vos: Eficiência; Garan%r propriedades de projeto. Maio 2013 O Paradigma Orientado a Objetos 37
38 Dados finais Constantes são comuns em LPs; Constantes conhecidas em tempo de compilação podem adiantar cálculos; Constantes inicializadas em tempo de execução garantem que o valor não irá mudar. Em Java, u%liza- se a palavra final: public static final int MAX = 1000; private final String NOME = "Java"; final double RAD = Math.PI / 180; Maio 2013 O Paradigma Orientado a Objetos 38
39 Referência constante Um primi%vo constante nunca muda de valor; Uma referência constante nunca muda, mas o objeto pode mudar internamente: public class Teste { public static final int MAX = 1000; private final Coordenada C = new Coordenada(); public static void main(string[] args) { // Erro: MAX = 2000; // Erro: C = new Coordenada(); C.x = 100; // OK, se x for público! Maio 2013 O Paradigma Orientado a Objetos 39
40 Dados finais não inicializados class Viagem { class DadoFinalLivre { final int i = 0; // Final inicializado final int j; // Final não inicializado final Viagem p; // Referência final não inicializada // Finais DEVEM ser inicializados em // todos os construtores e somente neles DadoFinalLivre () { j = 1; p = new Viagem(); DadoFinalLivre (int x) { j = x; p = new Viagem(); Maio 2013 O Paradigma Orientado a Objetos 40
41 Argumentos finais Um parâmetro de um método pode ser final: Dentro do método, funciona como constante. public class Teste { public void soimprimir(final int i) { // Erro: i++; System.out.println(i); Maio 2013 O Paradigma Orientado a Objetos 41
42 Métodos finais Métodos finais não podem ser sobrescritos por uma subclasse; Chamada do método inline (maior eficiência). class Telefone { public final void discar() { // Não compila: discar() é final! class TelefoneCelular extends Telefone { public void discar() { Maio 2013 O Paradigma Orientado a Objetos 42
43 Métodos privados são finais Métodos privados não podem ser acessados; Portanto, são finais por natureza (as subclasses não têm acesso a ele). class Telefone { private final void checarrede() { // OK. São dois métodos diferentes! class TelefoneCelular extends Telefone { private final void checarrede() { Maio 2013 O Paradigma Orientado a Objetos 43
44 Classes finais Classes finais não podem ter subclasses; Por consequência, todos os métodos de uma classe final são automa%camente finais. class Telefone { final class TelefoneCelular extends Telefone { // Erro: TelefoneCelular é final! class TelefoneAtomico extends TelefoneCelular { Maio 2013 O Paradigma Orientado a Objetos 44
45 h"p://nemo.inf.ufes.br/ Maio 2013 O Paradigma Orientado a Objetos 45
Capítulo 5 Reuso de Classes
Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Desenvolvimento Orientado a Objetos com Java Capítulo 5 Reuso de Classes
Desenvolvimento OO com Java Herança, reescrita e polimorfismo
Desenvolvimento OO com Java Herança, reescrita e polimorfismo Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza
Desenvolvimento OO com Java 6 Polimorfismo Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito
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
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
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
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 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
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
[Desenvolvimento OO com Java] Modificadores de acesso e atributos de classe
Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza Este obra está licenciada com uma licença Creative Commons Atribuição- CompartilhaIgual 4.0
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
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
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 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
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
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
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
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
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
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,
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
9 Exceções. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza
Desenvolvimento OO com Java 9 Exceções Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito
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
Aula 9 Herança. Prof. Jefersson Alex dos Santos
Aula 9 Herança Prof. Jefersson Alex dos Santos Roteiro Introdução Conversão de tipo explícita (Cast) Acesso Protegido A classe Object A classe Class Reflexão Recomendações de Projeto Herança Técnica necessária
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?
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
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
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
Desenvolvimento Web TCC-00.226 Turma A-1
Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Orientação a Objetos Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226
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
8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.
Desenvolvimento OO com Java 8 Classes Internas Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Linguagens de Programação Aula 12
Linguagens de Programação Aula 12 Celso Olivete Júnior [email protected] Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução
Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
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
[Desenvolvimento OO com Java] Classes abstratas e interfaces
Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza [Desenvolvimento OO com Java] Classes abstratas e interfaces Este obra está licenciada com uma
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
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 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(){
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
extendsé usado para indicar herança em JAVA
Herança e Polimorfismo Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Revisando extendsé usado para indicar herança em JAVA class ClasseA{ protected int a; public int geta()
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
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
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
7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.
Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
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
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
Classe Abstrata e Interface
Orientação a objetos com Java Classe Abstrata e Interface Byron Leite [email protected] 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public
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
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
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
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:
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
Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:
Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)
Programação Orientada a Objetos JAVA - NETBEANS
Programação Orientada a Objetos JAVA - NETBEANS Agenda Programação Orientada a Objeto (POO) Conceitos sobre POO Pilares da POO Objeto Classe Construtores Troca de Mensagens Pilares da POO Encapsulamento
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
Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.
Introdução Atributos, métodos e encapsulamento [email protected] Atributos Ipos de acesso: private, public, protected e default Encapsulamento Métodos Construtores Criando objetos Departamento de Ciências
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
Programação Orientada a Objetos Prof. André Gustavo Duarte de Almeida [email protected] www3.ifrn.edu.br/~andrealmeida Aula VIII Herança e Interface Roteiro Herança Classes Abstratas Interface
Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -
Programação Java - Herança e Polimorfismo - 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 relacionadas entre
Interfaces POO. Prof. Marcio Delamaro
Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso
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
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
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
Desenvolvimento OO com Java Classes abstratas e interfaces
Desenvolvimento OO com Java Classes abstratas e interfaces Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
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
Programação Orientada a Objetos
Programação Orientada a Objetos Modificadores de Acesso: public e private Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José [email protected] 31 de julho de
Suporte a programação orientada a objetos
Suporte a programação orientada a objetos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons
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
Programação Orientada a Objetos com Java. Prof. Júlio Machado
Programação Orientada a Objetos com Java Prof. Júlio Machado [email protected] HERANÇA Herança Herança é uma relação de generalização/especialização entre classes A ideia central de herança é que
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 [email protected] Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de
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: ------------------------------------------------------------------------------------------------------
