Aula 23. Programação Orientada à Objetos vs. Programação Modular

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

Download "Aula 23. Programação Orientada à Objetos vs. Programação Modular"

Transcrição

1 Aula 23 Programação Orientada à Objetos vs. Programação Modular Alessandro Garcia LES/DI/PUC-Rio Maio 2010 Barbara Liskov, CLU Turing Award 2008 Aula de hoje... Objetivos discutir os conceitos básicos de programação orientada a objetos (OO) discutir relação com programação modular Exemplos em Java Capítulo 9 do livro exemplos em C++ 2/ 27 1

2 Sumário Programação OO: Motivação e Conceitos Básicos Herança e Polimorfismo Visibilidade e Encapsulamento Interfaces e Pacotes (em Java) Diferenças básicas com Módulos em C 3/ 27 Programação Orientada a Objetos (POO) Um dos paradigmas de desenvolvimento de programas Problema resolvido: suporte direto a princípios de ProgMod Novas abstrações e mecanismos: abstrações: classes, objetos, métodos e atributos mecanismos de composição: chamada de métodos, herança (especialização) e polimorfismo Evolução da programação modular baseada em estruturas de funções Programação OO: criação de hierarquia i de classes na qual se pode derivar classes mais genéricas e especializadas reuso de código 4/ 27 2

3 Classes Classes são uma única estrutura que encapsula os atributos (dados) as métodos (funções) que manipulam estes dados Classes correspondem a abstrações do mundo real e que guardam similaridade entre si Exemplo: podemos abstrair propriedades comuns das entidades do mundo real João, José e Maria, formando a classe Pessoa A partir das classes, se instancia objetos classes são entidades sem existência própria durante a execução do programa para utilizar uma lista, é necessário instanciar primeiro um objeto a partir da classe Lista estado dos objetos Lista é usualmente diferente cada objeto, mesmo que da mesma classe, tem um tempo de vida diferente 5/ 27 Exemplo de Declarações de Classes (Java) Exemplo: Lâmpada class Lamp { Variável private boolean LampIsOn; public Lamp() { LampIsOn = false; public void turnknob() { LampIsOn =!LampIsOn; Construtor Método 6/ 27 3

4 Lista Ligada em Java public class No { public int dado; public No proximo; public No(int d, No p) { dado = d; // aqui armazena-se o valor do elemento proximo = p; // aqui armazena-se uma referencia para // o proximo elemento da lista Para criamos um No que contenha o valor 10 basta fazer: No primeirono i = new No(10, null); // instanciacao i do No Para adicionar um novo elemento na frente do primeiro: No auxiliar = new No(9, primeirono); // instanciacao do No primeirono = auxiliar; // encadeamento dos Nos OU: Para adicionar um novo elemento atrás do primeiro: No auxiliar = new No(9, null); // instanciacao do No primeirono.proximo = auxiliar; // encadeamento dos Nos 7/ 27 Objetos e Classes em Java Criando um objeto da classe Lamp Lamp l; l = new Lamp(); Lamp l1 = new Lamp(); Lamp l2 = new Lamp(); Se Lista fosse definida como uma classe em Java int numalunos, numturmas; Lista listaalunos = new Lista(); Lista listaturmas = new Lista(); um objeto é uma variável do tipo da classe utilizada para instanciá-lo Acessando variáveis e métodos numalunos = listaalunos.obtercardinalidade(); numturmas = listaturmas.obtercardinalidade(); l1.turnknob(); l2.lampison = true; Viola definição de visibilidade 8/ 27 4

5 Identificação de um Objeto Formas de se identificar um objeto Principalmente, através de nome (Java/C++): Lista listaalunos = new Lista(); // Java Lamp l1 = new Lamp(); // Java Lamp l2 = new Lamp(); // Java É possível: Passar um novo objeto (sem nome) como parâmetro Criar referências para objetos (Java) CLista minhalista = new CLista(); // Java 9/ 27 Destruição de Objetos Finda a necessidade do objeto, ele deve ser destruído Em algumas linguagens OO, tais como C++, cabe ao programador destruir explicitamente todos os objetos uso de delete Em outras linguagens OO, tais como Java, a destruição é implícita através do mecanismo de coleta de lixo (garbage collection) é uma forma automática de recuperação de espaços de dados alocados dinamicamente espaços que deixaram de ser acessíveis ao programa em execução o Garbage Collector roda em uma thread de baixa prioridade e remove todos os objetos que não são mais referenciados antes de um objeto ser destruído, o Garbage Collector executa o método finalize do objeto (quanto existir) isto permite fechamento de arquivos e conexões de rede 10 / 27 5

6 POO e Um Pouco de História Precursores Lisp: suporte a coleta automática de lixo Simula (1967): 1ª a incluir conceitos de OO CLU ( ), 75), Barbara Liskov, suporte à: Tipos abstratos de dados Gerência automática de memória influenciou Java Suporte explícito a tratamento de exceções influenciou Java, C++, C# e Ada Entretanto, nenhum suporte a herança e polimorfismo... quebra de encapsulamento... Barbara Liskov Recipient of 2008 Turing Award; OOPSLA 2009 Keynote Speaker (primeira mulher com PhD in CS) Smalltalk (1971): primeira linguagem, oficialmente, intitulada OO Ex. suporte a herança, mecanismo de TE completamente OO exceções como objetos; tratadores associados com classes e objetos Eiffel (1985): suporte explícito a assertivas no nível de funções e classes; integração com TE, política de retry é possível 11 / 27 Importância da classificação de conceitos em OO: gerando-se hierarquias de entidades (classes) Generalização: todas as funções e atributos (dados, variáveis membro) de Mamíferos são herdados por Homem, Cão e Gato 12 / 27 6

7 Herança múltipla Classificação estritamente baseada em herança/hierarquia não é uma solução natural para todos os casos uma entidade (classe) pode ter várias superclasses - herança múltipla: C++ tem Java não tem mas usa interfaces herança múltipla não é incorporada certas linguagens OO estudos empíricos indicaram que introduz complexidade adicional e afeta negativamente robustez e estabilidade Animais_Cauda Cauda Balançar_Cauda() 13 / 27 Refinamento de Classes Uso de extends class Ponto { private float x, y; public Ponto(float ax, float ay){ //garante o estado do objeto this.x = ax; this.y = ay;... class PtoMove extends Ponto { //adicione algum atributo private se quiser public PtoMove (float a, float b) { super(a,b); //chamada do construtor da classe pai public void move (float dx, float dy) { this.altera_x(retorna_x()+dx); this.altera_y(retorna_y()+dy); 14 / 27 7

8 Classes Abstratas Uso de extends e abstract abstract class Ponto { private float x,y; public Ponto(float ax, float ay){ //garante o estado do objeto this.x = ax; this.y = ay;... somente se existe um método abstrato class PtoMove extends Ponto { //adicione algum atributo private se quiser public PtoMove (float a, float b) { super(a,b); //chamada do construtor da classe pai public void move (float dx, float dy) { this.altera_x(retorna_x()+dx); this.altera_y(retorna_y()+dy); 15 / 27 Outro Exemplo: Emprestador/Emprestável classe abstrata Lendable {abstract name : String Borrower borrow( l : Lendable ) : boolean return( l : Lendable ) getacruedfine( ) : int name : String isonloan( ) : boolean checkout( b : Borrower ) : boolean checkin( ) getborrower( ) : Borrower isoverdue( ) : boolean {abstract getfine( ) : int {abstract definem diferentes políticas de controle de prazos e cálculo de multa Book Journal Video 16 / 27 8

9 Implementação public abstract class Lendable { private String name; private Borrower borrower; private Calendar dateborrowed; public boolean isonloan( ) { if (borrower!= null) return true; else return false; public boolean checkout( Borrower b ) { boolean success = false; if(! isonloan( ) ) { success = true; borrower = b; dateborrowed = Calendar.getInstance( ); public void checkin( ) { borrower = null; dateborrowed d = null; public Borrower getborrower( ) { return borrower; public abstract boolean isoverdue( ); public abstract int getfine( ); Projetado para ser reusado 17 / 27 Implementação public class Book extends Lendable { public boolean isoverdue( ) { OurDate dateloaned = new Date( dateborrowed.get( Calendar.YEAR ), dateborrowed.get( Calendar.MONTH ), dateborrowed.get( Calendar.DAY ) ); Calendar now = Calendar.getInstance( ); OurDate today = new OurDate( now.get( Calendar.YEAR ), now.get( Calendar.MONTH ), now.get( Calendar.DAY ) ); if( OurDate.subtract( dateloaned, today ) > 28 ) return true; else return false; Reuso 18 / 27 9

10 Programação OO: polimorfismo, conceito Todas as funções e atributos (dados, variáveis membro) de Quadrilátero são herdados por Quadrilátero CalcularArea( ) Trapézio, Retângulo e Quadrado Todas as funções e atributos de Retângulo são herdados por Quadrado Trapézio Retângulo CalcularArea( ) CalcularArea( ) Se todas as classes implementam o método CalcularArea( ) ocorre a redefinição desse método nas classes herdeiras amarração da invocação: busca do método é de baixo para cima sempre a implementação mais específica é executada caso especial: imposição de tipos... Quadrado CalcularArea( ) Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 19 / 27 Programação OO: mudança de tipo Um objeto de uma classe herdeira pode sempre ser promovido para uma de suas super-classes Objeto é polimorfo Trapézio Quadrilátero Retângulo Um objeto de uma superclasse CS somente poderá ser refinado para um objeto de uma classe herdeira CH se o objeto tiver sido construído (criado) como objeto dessa classe CH ou de alguma de suas classes herdeiras Quadrado Quadrado para Retângulo vale Quadrilátero para Retângulo vale somente se o objeto havia sido criado como Retângulo ou Quadrado Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 20 / 27 10

11 É importante... Estruturar bem, de forma antecipada, as hierarquias de classes estrutura inadequada é fonte constante de aborrecimentos quaisquer mudanças à hierarquia tende a exercer um efeito cascata de modificações no sistema todo Entretanto: necessidade de uma taxiologia eficaz envolvimento de todos os stakeholders, pois possuem visões diferentes das entidades do mundo real conciliar diferentes visões é necessário para produzir as hierarquias de classes Regra simplista: substantivos são sempre candidatos a classes verbos são candidatos a métodos adjetivos e advérbios são candidatos à atributos Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 21 / 27 Diferenças entre... Módulos (em C) e Classes (Linguagens OO) Classes possuem um operador de instanciação explícito Hierarquia de classes Uso de herança para reuso de estrutura e comportamento C: reuso somente através de chamadas de funções Destruição de objetos (desalocação de memória) em algumas linguagens OO é feita de forma automática Suporte direto a definição de interfaces / 27 11

12 Interfaces (em Java) Interfaces As interfaces definem assinaturas de conjuntos de métodos, mas não os implementam tem o papel do módulo de declaração (*.h) Interface é uma especificação que permite que classes, não diretamente relacionadas na mesma hierarquia, possam incorporar propriedades similares Uma classe que implemente a interface deve implementar TODOS os métodos definidos nesta. public interface Sleeper { public void wakeup(); public long ONE_SECOND = 1000; // milli 23 / 27 Diferenças entre... Módulos (em C) e Classes (Linguagens OO) Classes possuem um operador de instanciação explícito Hierarquia de classes Uso de herança para reuso de estrutura e comportamento C: reuso somente através de chamadas de funções Destruição de objetos (desalocação de memória) em algumas linguagens OO é feita de forma automática Suporte direto a definição de interfaces... Linguagens OO: melhor controle de visibilidade (graus de encapsulamento) exemplo: Java / 27 12

13 Visibilidade de membros da classe Controlando o acesso aos membros da classe Especificador classe subclasse pacote todos private X protected X X X public X X X X default X X 25 / 27 Pacotes (em Java) Pacotes Para facilitar o uso, controle de acesso e controle de conflito de nomes, os programadores agrupam classes e interfaces relacionadas em pacotes Para definir qual pacote uma classe pertence, basta incluir no início arquivo da classe a linha: package nomepacote; Os pacotes necessários a uma classe devem ser incorporados através do comando import similar ao include 26 / 27 13

14 Abstract e Final Métodos Abstract: não possuem implementação e devem ser implementados pelas subclasses classe deve ser definida como abstract quando possuir pelo menos um método abstrato Métodos Final: não podem ser sobrescritos é válido estender uma classe não marcada como final mas não podemos sobrescrever seus métodos final Erro de compilação 27 / 27 Membros estáticos de uma classe Métodos e variáveis estáticos Declarados com o especificador static São comuns a todos os objetos da classe Utilizados para declaração de constantes t Utilizados para declaração de métodos que não necessitam de uma instância da classe static int FALSO 0; static int VERDADEIRO 1; public static boolean testa( int p ) { if( p == this.verdadeiro ) return( true ); else return( false ); 28 / 27 14

15 Diferenças entre... Módulos (em C) e Classes (Linguagens OO) Classes possuem um operador de instanciação explícito Hierarquia de classes Uso de herança para reuso de estrutura e comportamento C: reuso somente através de chamadas de funções Destruição de objetos (desalocação de memória) em algumas linguagens OO é feita de forma automática Suporte direto a definição de interfaces... Linguagens OO: melhor controle de visibilidade (graus de encapsulamento) exemplo: Java... Suporte direto à funções polimórficas É possível a implementação de funções polimórficas em C? 29 / 27 Polimorfismo em C? Função como um dado Uma função definida é uma seqüência de bytes contida em um espaço de dados usualmente contíguo em geral, não alterável constante possui um nome usualmente o nome da função possui um endereço origem de execução nome da função Função de acesso( x, y,..., z ) Meio Endereço do espaço Tamanho Espaço de dados possui também um tipo... Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 30 / 32 15

16 Função como um dado O tipo de uma função é estabelecido pela sua assinatura física valor retornado lista dos tipos de parâmetros os nomes dos parâmetros não fazem parte da assinatura o nome da função não faz parte da assinatura exemplo: int ( int, double ) Uma função A será do mesmo tipo que a função B caso ambas tenham a mesma assinatura programador deve garantir que exista uma igualdade semântica Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 31 / 32 Dado tipo ponteiro para função Em C e C++ podem ser definidas variáveis do tipo ponteiro para função exemplo: int (* VarF1 )( int, double ) VarF1 é um ponteiro para função do tipo: int ( int, double ) Exemplo de atribuição int Func( int X, double Y ) {... /* Func */ Func é uma constante do tipo ponteiro para uma função do tipo: int ( int, double ) main(...) { VarF1 = Func ; Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 32 / 32 16

17 Exemplo simples: integração /* Função de integração numérica utilizando regra dos trapézios */ double Integrar( double LimInf, double LimSup, int NumInt, double ( * Func )( double X )) { double Integral = 0.0 ; Y double Intervalo ; int i ; assert( NumInt >= 2 ) ; Intervalo = ( LimSup - LimInf ) / ( NumInt - 1 ) ; Integral += Func( LimSup ) ; Integral += Func( LimInf ) ; for ( i = 1 ; i < NumInt - 1 ; i++ ) { Integral += 2 * Func( Intervalo * i ) ; /* for */ Integral *= Intervalo/2; return Integral ; /* Integrar */ h ITR 2 f A B X f1 f2 f3 fm2 fm1 fm Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 33 / 32 Exemplo simples: integração por trapézio Seja f(x) uma função contínua em [a, b] h ITR 2 o problema da integração numérica consiste em calcular um valor aproximado para I b x dx solução: calcular a integral f ( ) limite superior aproximada através da regra dos trapézios f0 2 f1 f2 f3 fm2 fm1 limite inferior i Parâmetros: - número de interações: 8 - limites inferior e superior: 0 e m - e a própria função f Y fm a função a ser integrada Exemplo: f(x) = 2 * x double f A B X Maio 2009 Alessandro Garcia 0 f 1 f LES/DI/PUC-Rio 1 f 2 f 2 f 3 f 3 f m 34 / 32 17

18 Exemplo simples: integração, uso /* exemplo de uso */ double Quadrado( double X ) { return X ** 2 ; double Cubo( double X ) { return X ** 3 ; printf( \n F = x ** 2 de x=1 a x=10: %lf, Integrar( 1.0, 10.0, 20, Quadrado )) ; printf( \n F = x ** 3 de x=1 a x=10: %lf, Integrar( 1.0, 10.0, 20, Cubo )) ; Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 35 / 32 Função como um dado A assinatura pode estar associada a um de vários corpos na hora da chamada é estabelecida a associação da chamada estática (tempo de compilação), caso normal de linguagens procedurais dinâmica (tempo de execução), caso freqüente em linguagens orientadas a objetos Assinatura F( int ) Chama F( float ) Associação da chamada Assinatura *F( float ) Associação dinâmica Associação estática Corpo F( float ) Corpo F( float ) Corpo F ( int ) Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 36 / 32 18

19 Dúvidas, Lembretes e Dicas Trabalho 3 Devo dar suporte a certa regra X e tipos de movimentos Y e Z? Deve seguir fielmente a especificação de requisitos do tra Como implementar a interface do jogo? Fica livre para o grupo decidir simples uso de printf, scanf, etc... é mais do que suficiente Professor: minha decomposição em módulos está boa? cuidado com quebra de encapsulamento exemplo: externalizar estruturas para módulo de Interface (se houver) de forma que poderia ser evitada dica: independentemente das adaptações que você venha fazer, tente preservar as estruturas dos módulos do T2 37 / 27 Dicas e Dúvidas do Trabalho 3 Não esquecer de justificar mudanças nos módulos (e estruturas) do Trabalho 2 Não esquecer de modificar modelos e entregar novamente Teste do Jogo, duas possibilidades: Teste automatizado: definição de linguagem de script + scripts Teste manual neste caso, é necessário, entregar um documento com roteiro de testes (sequencia de comandos dos dois jogadores) Correção do enunciado: os diversos programas executáveis (construtos): TRAB3-1.EXE, TRAB3-2.EXE, TRAB3-3.EXE, e assim por diante E não TRAB2-*.EXE ATENÇÃO: não haverá adiamento da entrega do trabalho! 38 / 27 19

20 Aula 23 Programação Orientada à Objetos Alessandro Garcia Alessandro Garcia LES/DI/PUC-Rio Maio

Aula 24 Programação Modular, POO e Padrões de Projeto

Aula 24 Programação Modular, POO e Padrões de Projeto Aula 24 Programação Modular, POO e Padrões de Projeto Alessandro Garcia LES/DI/PUC-Rio Junho 2010 Diferenças entre... Módulos (em C) e Classes (Linguagens OO) Classes possuem um operador de instanciação

Leia mais

Classes e Objetos. Sintaxe de classe em Java

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

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

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

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Classes e Objetos, Construtores e Desconstrutores, Atributos e

Leia mais

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

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

Leia mais

Linguagens de Programação Aula 12

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

Leia mais

Classe Abstrata e Interface

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

Leia mais

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos

Leia mais

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

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

Leia mais

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

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

Leia mais

Laboratório de programação II

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

Leia mais

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas

Leia mais

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

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

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

Linguagem de Programação IV Introdução

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

Leia mais

Conceitos de Programação Orientada a Objetos

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

Leia mais

Linguagem de Programação III

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

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos

Leia mais

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

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

Leia mais

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Conceitos de Linguagens de Programação - Características. Paavo Soeiro Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o

Leia mais

Palavras Reservadas da Linguagem Java

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

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

Leia mais

Programação por Objectos. Java

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

Leia mais

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

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

Leia mais

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

Introdução à Programação. Conceitos Básicos de Orientação a Objetos Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes

Leia mais

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no

Leia mais

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 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

Leia mais

Programação Orientada a Objetos II

Programação Orientada a Objetos II Programação Orientada a Objetos II Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Introdução ao Desenvolvimento

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

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

Leia mais

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente): Algoritmos e Programação 2 Baseado no material do Prof. Júlio Machado Objetos e Classes em Java Revisão Classes: encapsulam dados (atributos) e operações sobre os dados (métodos) Objetos: instâncias de

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB bidu@ci.ufpb.br C++ e POO Fundamentação de Orientação a Objetos (OO) Sintaxe básica de C++ Modelagem de sistemas orientada a

Leia mais

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Tema 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 mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização

Leia mais

Programação Orientada a Objetos SANTOS, Rafael

Programação Orientada a Objetos SANTOS, Rafael Programação Orientada a Objetos SANTOS, Rafael Neste capítulo e nos seguintes serão usados intensamente os conceitos básicos de OO e da linguagem estudados até agora, com ênfase para os de número 1, 2

Leia mais

3.4. Programação Orientada a Objetos

3.4. Programação Orientada a Objetos Paradigmas de Linguagens I 1 3.4. Programação Orientada a Objetos Os conceitos de objetos e classes, vistos nas seções anteriores, são fundamentais na programação orientada a objetos. Complementando a

Leia mais

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

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

Leia mais

Introdução. LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++.

Introdução. LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++. Java Parte I mleal@inf.puc-rio.br 1 Introdução LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++. Todos os programas Java são compilados e interpretados. O compilador

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema

Leia mais

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

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

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

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

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

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1. Torna o atributo visível a todas as classes do pacote onde foi declarado: a) public b) private c) protected d) package

Leia mais

Modificadores de Acesso JAVA

Modificadores de Acesso JAVA Modificadores de Acesso JAVA Definição Os modificadores de acesso são padrões de visibilidade de acessos às classes, atributos e métodos. Esses modificadores são palavras-chave reservadas do Java. E as

Leia mais

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias

Leia mais

Programação Orientada a Objetos JAVA - NETBEANS

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

Leia mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Herança. Prof. Fernando V. Paulovich  23 de agosto de 2010 Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade

Leia mais

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos. Departamento de Informática Prof. Anselmo C.

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos. Departamento de Informática Prof. Anselmo C. Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos Departamento de Informática Prof. Anselmo C. de Paiva Classes O conjunto de requisições que um objeto pode cumprir é determinado

Leia mais

Introduçã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 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 mais

UNIFEI Disciplina Professor

UNIFEI Disciplina Professor UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO02 Enganharia de Software II Enzo Seraphim Nota de aula de Java Encapsulamento

Leia mais

Linguagem de Programação. Diagrama de classes

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

Leia mais

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

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

Leia mais

O PARADIGMA ORIENTADO POR OBJETOS

O PARADIGMA ORIENTADO POR OBJETOS O PARADIGMA ORIENTADO POR OBJETOS A idéia básica do paradigma orientado a objetos é imaginar que programas simulam o mundo real: um mundo povoado de objetos. Dessa maneira, linguagens baseadas nos conceitos

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

COMPORTAMENTOS - Observações

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

Leia mais

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

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

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 4 Tipos Enumerados Generalização e Herança Visibilidade Chamada de Construtores

Leia mais

Modelo do Mundo Real. Abstração. Interpretação

Modelo do Mundo Real. Abstração. Interpretação Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc. PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 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 mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 7: Interfaces LEEC@IST Java 1/31 Interfaces revisão (1) Uma interface é um conjunto de protótipos de métodos (sem implementações) que especifica um serviço bem definido:

Leia mais

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

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

Leia mais

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA LPOO - Linguagem de Programação Orientada a Objetos Prof. Msc. Célio R. Castelano Página 1 de 7 Curso Ciência da Computação Professor Célio Ricardo Castelano UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO

Leia mais

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1 INE5603 Introdução à POO Prof. A. G. Silva 30 de outubro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de 2017 1 / 1 Especialização de classes (I) (Cap. 6) Operações de abstração como

Leia mais

PROGRAMAÇÃO ORIENTADA A

PROGRAMAÇÃO ORIENTADA A PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, MS M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos

Leia mais

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares Programação Orientada a Objetos Classes Abstratas Sérgio Soares scbs@cin.ufpe.br Até aqui Quando usar herança? Ao redefinir um método manter o comportamento herdado! 2 Adivinhem... Surge um novo requisito

Leia mais

Linguagem de programação Programação Orientada a objetos

Linguagem de programação Programação Orientada a objetos Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Programação Orientada a objetos Professor: Saulo Henrique Cabral Silva Paradigma da orientação a objetos Paradigma = forma de

Leia mais

C com introdução a OO

C com introdução a OO ... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro

Leia mais

Programação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior .:

Programação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior  .: Programação I Curso: Sistemas de Informação Prof.: José Ronaldo Leles Júnior Email.: juniorleles80@gmail.com 1º semestre - 2017 POO Paradigma Orientado a Objetos O que é um Paradigma? É um ponto de vista

Leia mais

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?

Leia mais

Professor Leonardo Cabral da Rocha Soares Lattes:

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

Leia mais

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

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

Leia mais

Interfaces e Classes Abstratas

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

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos (DPADF 0063) Programação Orientada a Objetos (DPADF 0063) Aula 1 Motivação e Introdução Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet

Leia mais

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

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

Leia mais

Polimorfismo. O que é polimorfismo?

Polimorfismo. O que é polimorfismo? O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus

Leia mais

Universidade Federal de Uberlândia

Universidade Federal de Uberlândia Universidade Federal de Uberlândia Faculdade de Computação Disciplina: POO1 Prof. Fabiano Dorça Classes e métodos abstratos É impossível instanciar objetos a partir de classes abstratas. Classes abstratas

Leia mais

Suporte a programação orientada a objetos

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

Leia mais

6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza  ~ vitorsouza Desenvolvimento OO com Java 6 Polimorfismo Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Projeto de Linguagem. Linguagens de Programação

Projeto de Linguagem. Linguagens de Programação Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem

Leia mais

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

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: ------------------------------------------------------------------------------------------------------

Leia mais

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

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

Leia mais

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

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

Leia mais

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

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

Leia mais

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

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

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

Leia mais

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

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

Leia mais

POO29004 Programação Orientada a Objetos

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

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

Programação Orientada a Objeto (POO)

Programação Orientada a Objeto (POO) Programação Orientada a Objeto (POO) Prof Francesco Artur Perrotti Classes e Objetos Classe pode ser definida como uma categoria de objetos. Usamos as classes para facilitar o entendimento dos objetos

Leia mais