JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 26 de outubro de 12
|
|
- Fátima Lagos Amarante
- 6 Há anos
- Visualizações:
Transcrição
1 JAVA Tópicos Especiais de Programação Orientada a Objetos 1
2 REFATORAÇÃO DE CÓDIGOS 2
3 REFATORAÇÃO O QUE É REFATORAR? Refatorar é alterar o código de um projeto existente, sem mudar o seu comportamento, ou seja, trata-se de melhorar a qualidade interna do software, a nível de código e design. Melhorar a qualidade no sentido de tornar o código mais legível, coeso, com um melhor desempenho ou simplesmente tornar o design mais limpo. 3
4 REFATORAÇÃO Principais Benefícios: Refatorar resulta em um melhor projeto de software O entendimento do negócio pode mudar durante o desenvolvimento e refatorar pode aproximar o modelo do software ao negócio. 4
5 REFATORAÇÃO 5
6 REFATORAÇÃO Principais Benefícios: Ajuda a programar mais rápido Um código mais limpo, coeso e organizado facilita a alteração e adição de novas funcionalidades. Programador do Mês 6
7 REFATORAÇÃO Principais Benefícios: Torna o código mais fácil de entender Com práticas de refatoração o código fala por si, dispensando comentários e melhorando o entendimento do sistema pela equipe que compartilha o código. 7
8 REFATORAÇÃO Principais Benefícios: Ajuda a encontrar falhas Códigos mais simples e legíveis levam a uma melhor observação, tanto a nível de design quanto a nível de implementação, e isto ajuda a encontrar falhas latentes, gargalos, etc. 8
9 REFATORAÇÃO Mas quando aplicar a Refatoração? Existem alguns momentos principais onde podemos fazer uso da Refatoração: Corrigindo um erro É um ótimo momento para introduzir um código mais limpo, haja visto que a mesma área pode ser novamente alterada, e por outro programador. 9
10 REFATORAÇÃO Adicionando uma nova funcionalidade Às vezes, percebe-se que a hierarquia de classes poderia ser diferente, um método poderia estar em uma classe mais abstraída ou mais específica. O programador lida o tempo todo com a complexidade, e identificar partes que poderão sofrer alterações no futuro e torná-las mais flexíveis para receber estas alterações, faz parte da complexidade. 10
11 REFATORAÇÃO Revisando o código O código está pronto e funcionando, mas percebe-se locais em que o código parece confuso (ter que ler mais de 2 vezes indica isso) ou nota-se que existem instruções desnecessárias que degradam o desempenho, então, eis um bom momento para refatorar. 11
12 REFATORAÇÃO O livro mais importante sobre refatoração é Refactoring: Improving the Design of Existing Code de Martin Fowler, onde são explicados os conceitos, motivações e uma série de refatorações. Os tipos de refatorações utilizadas por Fowler se tornou padrão e são amplamente utilizados hoje. 12
13 Principais tipos de Refatorações: REFATORAÇÃO Extrair Método (Extract Method) Mover Método (Move Method) Mover Atributo (Move Field) Extrair Classe (Extract Class) Encapsular Atributo (Encapsulate Field) Renomear Método (Rename Method) Remover Variáveis Temporárias (Split Temporary Variable) Substituir Temporário por Consulta (Replace Temporary with Query) Subir Método (Pull Up Method) Subir Atributo (Pull Up Field) Descer Método (Push Down Method) Descer Atributo (Push Down Field) Extrair Sub-classe (Extract Subclass) Extrair Super-classe (Extract Superclass) 13
14 EXTRAIR MÉTODO Você tem um fragmento de código que poderia ser agrupado. Mude o fragmento para um novo método e escolha um nome que explique o que ele faz. É uma das refatorações mais comuns. Se um método é longo demais ou difícil de entender e exige muitos comentários, extraia trechos do método e crie novos métodos para eles. Isso vai melhorar as chances de reutilização do código e vai fazer com que os métodos que o chamam fiquem mais fáceis de entender. O código fica parecendo comentário. 14
15 EXTRAIR MÉTODO public class DividaCliente {!! public void imprimedividas(arraylist<double> dividas) {!!!! System.out.println(" ");!! System.out.println("Impressao de dividas do Cliente");!! System.out.println(" ");!!!! Iterator<Double> iteradordividas = dividas.iterator();!! Double totaldivida = 0.0;!!!! while (iteradordividas.hasnext()) {!!! totaldivida += iteradordividas.next();!! }!! System.out.println(" ");!! System.out.println("Total de dividas: " + totaldivida);!! System.out.println(" ");!! } } 15
16 EXTRAIR MÉTODO public class DividaCliente {!! public void imprimedividas(arraylist<double> dividas) {!!!! imprimecabecalho();!!!! Iterator<Double> iteradordividas = dividas.iterator();!! Double totaldivida = 0.0;!!!! while (iteradordividas.hasnext()) {!!! totaldivida += iteradordividas.next();!! }!! imprimedivida(totaldivida);!! }!! private void imprimecabecalho() {!! System.out.println(" ");!! System.out.println("Impressao de dividas do Cliente");!! System.out.println(" ");! }! private void imprimedivida(double divida) {!! System.out.println(" ");!! System.out.println("Total de dividas: " + divida);!! System.out.println(" ");! } } 16
17 SUBSTITUIR TEMPORÁRIO COM CONSULTA Essa técnica consiste em trocar variáveis temporárias que contêm expressões matemáticas por métodos, para que possam ser chamados em outros métodos aumentando a reusabilidade e manutenção da expressão em questão. public class SubsTempConsulta {! private double massa, gravitacional, altura;!! public String localizacaoobjeto() {!!! double energiapotencial = this.massa * this.gravitacional * this.altura;!!!! if (energiapotencial == 0) {!!! return "O objeto está no chão. Energia potencial: " + energiapotencial;!! }!! else!! {!!! return "O objeto não está no chão. Energia potencial: " + energiapotencial;!! }!!! }! } 17
18 SUBSTITUIR TEMPORÁRIO COM CONSULTA private double massa, gravitacional, altura; public String localizacaoobjeto() { } if (energiapotencial() == 0) { return "O objeto está no chão. Energia potencial: " + energiapotencial(); } else { return "O objeto não está no chão. Energia potencial: " + energiapotencial(); } private double energiapotencial() { return getmassa() * getgravitacional() * getaltura(); } public double getmassa() { return massa; } public void setmassa(double massa) { this.massa = massa; } public double getaltura() { return altura; } public void setaltura(double altura) { this.altura = altura; } public double getgravitacional() { return gravitacional; } public void setgravitacional(double gravitacional) { this.gravitacional = gravitacional; } 18
19 REMOVER VARIÁVEL TEMPORÁRIA Caracteriza-se por ter uma ou várias variáveis temporárias com valores designados que são frequentemente alterados, exceto quando forem variáveis de loop ou coleções. O problema afeta diretamente a clareza do seu código, sendo que em um dado momento uma variável vale X e em outro a mesma variável poderá valer Y. A cada vez que a variável altera o seu valor, aumenta-se também a sua responsabilidade dentro do método. Qualquer variável com mais de uma responsabilidade deve ser refatorada de maneira que cada variável tenha apenas uma responsabilidade. Usar uma variável para designar várias coisas pode ser bastante confuso para o leitor do código. Lembre-se que a refatoração de código tem como princípio melhorar a organização do código para ser mais legível aos humanos, e não as máquinas. Para resolver nosso problema podemos criar variáveis temporárias como apenas uma responsabilidade e declara-las como sendo constantes. 19
20 REMOVER VARIÁVEL TEMPORÁRIA! double temporario = getmassa() * getgravitacional() * getaltura();! System.out.println("Energia potencial: " + temporario);! temporario = getmassa() * (getvelocidade() * getvelocidade()) / 2;! System.out.println("Energia cinetica: " + temporario);!! final double energiapotencial = getmassa() * getgravitacional() * getaltura();! System.out.println("Energia potencial: " + energiapotencial);! final double energiacinetica = getmassa() * (getvelocidade() * getvelocidade()) / 2;! System.out.println("Energia cinetica: " + energiacinetica); 20
21 SUBIR E DESCER MÉTODO As refatorações dos tipos Subir e Descer Métodos consistem na mudança de um método de uma ou mais subclasses para a superclasse ou vice versa. A principal motivação dessa refatoração é a existência de métodos repetidos ou com comportamento semelhantes nas subclasses. Dessa forma para evitar a repetição de código e melhorar a manutenção, esse método é movido para a superclasses ou vice versa. 21
22 SUBIR E DESCER MÉTODO 22
23 SUBIR E DESCER MÉTODO 23
24 DESFAZER A HIERARQUIA Neste tipo de refatoração a hierarquia de classes existente é desfeita, deixando toda a implementação para a superclasse. Faz uma generalização dos métodos das subclasses de forma a um único método atender a todas implementações existentes nas subclasses. Normalmente essa refatoração ocorre quando o sistema foi projeto em excesso, ou seja, foi realizado uma abordagem mais completa do que era necessário. 24
25 DESFAZER A HIERARQUIA 25
26 BIBLIOGRAFIA Introdução ao Java, Daniel Destro do Carmo Use a Cabeça Java, Kathy Sierra e Bert Bates Certificação Sun para Programador Java 6, Kathy Sierra e Bert Bates 26
27 OBRIGADO PROF. EMILIO PARMEGIANI DOWNLOAD DO MATERIAL 27
Refatoração de Software
Refatoração de Software O que é? Atividade em que a estrutura interna de um software é modificada de modo que seu comportamento externo seja preservado; O objetivo é melhorar a qualidade do software; Cada
Leia maisJava 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 maisRefactoring Visão Geral do Catálogo de Martin Fowler
Refactoring Visão Geral do Catálogo de Martin Fowler Jorge Fernandes Janeiro de 2001 Catálogo de Refactorings Composição de Métodos Movendo Características entre Objetos Organizando Dados Simplificando
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Pacotes e Encapsulamento Msc. Paulo de Tarso F. Júnior 1 Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes e interfaces
Leia maisIntrodução à orientação a objetos. João Tito Almeida Vianna 18/05/2013
Introdução à orientação a objetos João Tito Almeida Vianna 18/05/2013 Roteiro Aula 1 Introdução: Programação estruturada x Orientação a objetos Orientação a objetos Classe e objeto Encapsulamento Herança
Leia maisLinguagem 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 maisSumário. Escrita de Programas. Qualidades. Objectivos. Engenharia de Software. Caracterização. Técnicas Casos Notáveis Conclusões
Engenharia de Software Escrita de Programas António Rito Silva Rito.Silva@inesc-id.pt Sumário Caracterização Objectivos Qualidades Técnicas Casos Notáveis Conclusões Escrita de Programas 2 Objectivos O
Leia maisLinguagem 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 maisJava na Prática. Célio Silva Aula 3
Java na Prática Célio Silva Aula 3 Java na Prática Collections List List são listas de coisa ordenadas/não ordenadas, com duplicações permitidas e com um índice Servem para encapsular código de tratamento
Leia maisRefatoração Melhorando o sistema e preparando pra a Web
POO Programação Orientada a Objetos Refatoração Melhorando o sistema e preparando pra a Web Jefferson S. Silva IFET - PI Copyright Jefferson S. Silva Slide 1 Refatoração Uma prática bastante comum e difundida
Leia maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo 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 maisLista 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 maisInterfaces. 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 maisUNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 11 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de Refatoração e Padrões. DESENVOLVIMENTO PADRÕES
Leia maisPolimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo
Polimorfismo: aprendendo a prever o futuro BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Sumário Definições Tipos de Polimorfismo Dicas para o Polimorfismo Eficaz Armadilhas
Leia maisTema da aula Introdução ao paradigma de programação: Orientado a Objetos
Profa. Juliana Santiago Teixeira Disciplina: Programação Orientada a Objetos I Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Paradigma Paradigma é a filosofia adotada na construção
Leia maisInterfaces 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 maisIntroduçã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
Leia maisProgramação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior
Programação Orientada a Objetos Prof. MsC Sílvio Bacalá Júnior Princípios básicos de OO Abstração Encapsulamento Modularidade Herança 2013 POO - Bacalá 2 Abstração Concentração nas características essenciais,
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Orivaldo Vieira Santana Jr. Observação: Apresentação elaborada a partir do material do Prof. Marcos Costa - IFPE Roteiro Objetivos Introdução Conceitos de Programação Orientada
Leia maisLaboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP088 Laboratório de Programação Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Manipulação de Exceções; 1) Try e Catch 2) Finally 3) Propagação (Throw e Throws) 2) Erros e Exceções Comuns;
Leia maisProgramaçã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 maisPROGRAMAÇÃO JAVA. Parte 3
PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos
Leia maisProgramação para GI. Subprogramas
nível 05/05/2015 Programação para GI Aula 08 Java é uma linguagem de programação orientada a objetos (POO). O objetivo desta aula é escrever programas em Java organizando o código em subprogramas (funções)
Leia maisSobrecarga, Sobreposição e Polimorfismo
Sobrecarga, Sobreposição e Polimorfismo José Gustavo de Souza Paiva Sobrecarga de Métodos Numa mesma classe, dois ou mais métodos podem ter o mesmo nome Desde que tenham tipos, quantidade e/ou ordem de
Leia maisJAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS
JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS LABORATÓRIO 2 PROF. EMILIO PARMEGIANI Neste laboratório trabalharemos com conceitos de orientação a objetos, através da criação de classes, propriedades,
Leia maisDELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 5
REFLEXÃO 5 Módulos 0782, 0783, 0784 e 0785 1/5 23-05-2013 Esta reflexão tem como objectivo partilhar e dar a conhecer o que aprendi nos módulos 0782 Programação em C/C++ - Estrutura Básica e Conceitos
Leia maisEscrita de Programas. António Rito Silva - João Pereira
Escrita de Programas António Rito Silva - Rito.Silva@ist.utl.pt João Pereira Joao@inesc-id.pt Sumário Caracterização Objectivos Qualidades Técnicas Casos Notáveis Conclusões Escrita de Programas 2 Objectivos
Leia maisProgramaçã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 maisIntrodução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos
Introdução Programação Orientada a Objetos (POO) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Avaliações Continuada: Resolução de Atividades Práticas em Sala; Resolução de Lista de Exercícios; Provas
Leia maisLinguagem 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 maisSEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Prof. Dr. Daniel Caetano 2014-1 DISCUSSÃO Visão Geral dos Paradigmas Quais os paradigmas mais comuns? Do que é composto um programa
Leia maisProgramaçã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 maisHeranç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 maisProgramação Orientada a Objetos
Programação Orientada a Objetos Faculdade de Computação Aula Revisão Marcelo Zanchetta do Nascimento Material elaborado pela Profa. Ana Carolina Lorena - UNIFESP Desenvolvimento de Software ANÁLISE IMPLEMENTAÇÃO
Leia maisDecorator e Composite. Nazareno Andrade (baseado no material de Hyggo Almeida)
Decorator e Composite Nazareno Andrade (baseado no material de Hyggo Almeida) Decorator Vocês sabem como ler um arquivo texto em Java??? Pode-se usar a classe java.io.fileinputstream Vamos fazer um teste
Leia maisIntrodução à orientação a objetos
Universidade Federal de Juiz de Fora PET Elétrica Introdução à orientação a objetos Tutor: Francisco José Gomes Aluno: João Tito Almeida Vianna 18/05/2013 1 Programação Estruturada x Orientação a objetos
Leia maisHeranç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 maisUnidade: 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 maisEstratégias de Escrita de Testes Automatizados
Estratégias de Escrita de Testes Automatizados Paulo Cheque 12/02/2009 Verão 2009 2 Sobre a Palestra Refatoração TAD TFD/POUT TDD BDD Padrões e Anti padrões 3 (Refatoração) Uma modificação feita em pequenos
Leia maisponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Leia maisLiçã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 maisEstruturas de controle Parte 1
1. Objetivos Estruturas de controle Parte 1 Nas lições anteriores, foram mostrados programas seqüenciais, onde as instruções foram executadas uma após a outra de forma fixa. Nesta lição, discutiremos estruturas
Leia maisCronograma de Aulas - Mococa 1º Módulo 23/05/2009 a 27/06/2009
Atualização Técnica e Pedagógica para Professores de Informática - JAVA Cronograma de Aulas - Mococa 1º Módulo 23/05/2009 a 27/06/2009 Responsável: Luis Eduardo Fernandes Gonzalez Professor Responsável
Leia maisAula 11 Introdução ao Java Script
Aula 11 Introdução ao Java Script Java Script é uma linguagem que permite trabalhar com a Lógica em páginas escritas em HTML (HiperText Mark-up Language). As páginas HTML podem ser escritas utilizando-se
Leia maisTratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo
Tratamento de Exceções LPG II Java Tratamento de Exceções Introdução Princípios do tratamento de exceções em Java Cláusula try Cláusula catch Cláusula finally Hierarquia de exceções em Java Considerações
Leia maisProgramação Orientada a Objetos em Java
Programação Orientada a Objetos em Java Conceitos: Classe, Variável de Instância ou Atributos, Métodos, Objeto, Variáveis Estáticas ou de Classe, Construtores, Construtores Sobrecarregados, Herança, Polimorfismo,
Leia maisIntrodução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,
Leia maisPROGRAMAÇÃO PARA DESIGNERS - PENSAR COMO O INIMIGO
PROGRAMAÇÃO PARA DESIGNERS - PENSAR COMO O INIMIGO Introdução "Para derrotar o inimigo é preciso pensar como ele" Actionscripting na perspectiva de um designer não é muito fácil porque vê-em o mundo em
Leia maisProgramaçã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 maisEngenharia de Software Experimental 2013.2
Engenharia de Software Experimental 2013.2 Avaliação de introdução de anomalias de software, após aplicação de refatorações automáticas para remoção de code smells Chrystinne Fernandes Sumário Conceitos
Leia maisIntroduçã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 joao@ecomp.uefs.br Atributos Ipos de acesso: private, public, protected e default Encapsulamento Métodos Construtores Criando objetos Departamento de Ciências
Leia maisLinguagem e Técnicas de Programação
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Leia maisProgramação Orientada a Objetos - 3º semestre AULA 01 Prof. André Moraes
Pág 3 Programação Orientada a Objetos - 3º semestre AULA 01 Prof. André Moraes 1 APRESENTAÇÃO DA UNIDADE CURRICULAR A unidade curricular de Programação Orientada a Objetos tem por objetivo promover o estudo
Leia maisAULA 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 maisHeranç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 maisProgramação Orientada a Objetos Relacionamentos entre classes
Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO
Leia maisProgramação Orientada a Objetos
PMR2300 Escola Politécnica da Universidade de São Paulo Proposta O mundo real é composto de entidades que interagem entre si para realizar tarefas (objetos). Objetos podem representar entidades concretas
Leia maisHeranç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
Leia mais1) Operadores de auto incremento ++ e auto decremento --
Aula 09 - Operadores de auto incremento e auto decremento, atribuição múltipla, atribuição na declaração, atribuição resumida e algumas regras de boa programação. 1) Operadores de auto incremento ++ e
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Editor Gráfico Vamos usar nosso framework do Motor, com pequenas mudanças (para permitir interação com
Leia maisEvolução de Software e Refatoração
Evolução de Software e Refatoração Mudança de software Mudança de software é inevitável Novos requisitos surgem quando o software é usado; O ambiente de negócio muda; Erros devem ser reparados; Novos computadores
Leia maisAula 4 Estruturas de Controle
UNIP Universidade Paulista Ciência da Computação Aula 4 Estruturas de Controle Prof. Célio Ricardo Castelano 1 Tópicos Abordados 1) Instruções de seleção em Java: 2) Instruções de repetição em Java: 2
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Classes, Atributos e Métodos Msc. Paulo de Tarso F. Júnior 1 Introdução Programas eram lineares e com poucos módulos: PE Programação Estruturada Aumento da complexidade
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem
Leia maisDisciplina: Engenharia de Software. 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE
Disciplina: Engenharia de Software 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE Quando termina o desenvolvimento de um software? A maioria das grandes empresas gasta mais na manutenção de sistemas existentes
Leia maisTratamento de Exceções
Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que
Leia maisComputaçã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 maisGenéricos. Profa. Thienne Johnson EACH/USP
Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,
Leia maisNotas 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 maisDATA ACCESS OBJECT (DAO)
Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação DATA ACCESS OBJECT (DAO) SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre 2015
Leia maisHerança e Polimorfismo -Parte II -
Herança e Polimorfismo -Parte II - Mário Meireles Teixeira mario@deinf.ufma.br A hierarquia do exemplo DoME 2 1 Saída incompleta O que queremos CD: A Swingin' Affair (64 mins)* Frank Sinatra tracks: 16
Leia maisProfessor Jefferson Chaves Jefferson de Oliveira Chaves
Professor Jefferson Chaves jefferson.chaves@ifc-araquari.edu.br Dizer o que é e para que serve orientação a objetos; Conceituar classes, atributos e comportamentos; Entender o significado de variáveis
Leia maisPADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS
PADRONIZAÇÃO 10. INTERFACES No dia-a-dia lidamos com diversos aparelhos elétricos Diversas empresas fabricam aparelhos elétricos com plugues E se cada empresa decidisse por conta própria o formato dos
Leia maisPanorâmica da Programação Orientada a Objetos
Panorâmica da Programação Orientada a Objetos Programação orientada a objetos (POO) é uma das maiores inovações na área de desenvolvimento de software. É importante você entender a POO e limitações das
Leia maisApêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:
Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.
Leia maisIntrodução a Programação Orientada a Objetos
Introdução a Programação Orientada a Objetos Fernando de Simas, Airton de Souza, Sérgio Roberto Centro de Ciências Tecnológicas da Terra e do Mar Universidade do Vale do Itajaí UNIVALI. 88302-202 Itajaí
Leia mais9 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 maisFabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma
Leia maisClasses 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 maisAlgoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:
Algoritmos Algoritmos Leandro Tonietto Unisinos ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/inf/pg1/algoritmosi_java.pdf Mar-2008 Possuem sintaxe flexível e são mais úteis para descrição
Leia maisOrientação a Objetos e Java
Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características
Leia mais4 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 maisSingleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)
e Adapter Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Factory Method Abstract Factory 2 O que veremos hoje? (padrão de criaçã) Adapter
Leia maisMódulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo. Última atualização: 09/06/2010
Módulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo Última atualização: 09/06/2010 Objetivos Distinguir entre variáveis de instância e locais; Descrever como iniciar variáveis de instância;
Leia maisUNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CAMPUS PONTA GROSSA CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
Relatório do GPES UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Relatório referente ao desenvolvimento do avaliador semântico de fórmulas utilizando o padrão de projeto Interpreter. Realizado do dia 13 de
Leia maisAula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;
Leia maisObjetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica
Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 03 Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão
Leia maisHerança. BCC702-Programação de Computadores II Emiliana Mara Lopes Simões Universidade Federal de Ouro Preto abril 2010
Herança BCC702-Programação de Computadores II Emiliana Mara Lopes Simões simoes.eml@gmail.com Universidade Federal de Ouro Preto abril 2010 Herança Uma característica importante da programação orientada
Leia mais1 Da aula teórica ao Java
Universidade Federal do ABC Bacharelado em Ciência da Computação Processamento da Informação - Prof. Fabrício Olivetti de França Guia de tradução entre Java e outras linguagens 1 Da aula teórica ao Java
Leia maisUnidade 12: Estrutura de Repetição Simples Prof. Daniel Caetano
Lógica de Programação 1 Unidade 12: Estrutura de Repetição Simples Prof. Daniel Caetano Objetivo: Realizando decisões de repetição simples no código de programação. Bibliografia: ASCENCIO, 2007; MEDINA,
Leia maisPág. 1 de 6
String www.tiexpert.net Pág. 1 de 6 Strings são utilizadas frequentemente em várias linguagens de programação, não apenas Java. Embora Strings sejam uma sequência de caracteres em Java, e não um array
Leia mais