Programação Orientada a Objetos
|
|
|
- Rubens Cláudio Back da Mota
- 9 Há anos
- Visualizações:
Transcrição
1 Programação Orientada a Objetos [email protected] 1 Histórico O conceito de Classe foi introduzido na década de 60 através da LP Simula 67. A primeira LP OO pura foi Smalltalk desenvolvida durante a década de 70. Outros exemplos de LPs OO são Eiffel, Java, Object Pascal e C#. LPs como C++, Ada e Perl suportam o conceito de classe mas não são consideradas LPs OO em um sentido mais rigoroso. [email protected] 2
2 Introdução Com o desenvolvimento de aplicações de software cada vez mais complexas, cresceram as demandas por metodologias que pudessem abstrair e modularizar as estruturas básicas de programas. A programação OO suporta a abstração e mudularização através da especificação de tipos abstratos de dados (as classe), e promove a reutilização de software por meio do mecanismos de herança. [email protected] 3 Introdução A programação OO busca modelar aplicações seguindo uma estrutura semelhante àquela encontrada no mundo real. O mundo é composto por objetos que apresentam estados e comportamentos. Um gato por exemplo tem um nome, uma cor e uma raça (os estados) e ele come, mia e caça ratos (os comportamentos). [email protected] 4
3 Modelo OO Uma aplicação OO é composta por diferentes objetos e uma sequência de ações (interações). Uma ação se inicia através do envio de uma mensagem para um agente (um objeto) que será responsável por tratar essa ação. A mensagem carrega uma requisição, além de toda a informação necessária (argumentos) para que a ação seja executada. Se o agente receptor da mensagem a aceita, ele tem a responsabilidade de executar um método para cumprir a requisição. [email protected] 5 Objetos Constituem as estruturas básicas de uma aplicação. Estão preparados para cumprir um determinado conjunto de requisições. Recebem essas requisições através de mensagens. Possuem a responsabilidade de executar um método que cumpra a requisição. Possuem um estado representado por informações internas. [email protected] 6
4 Atributos, Métodos e Mensagens Um objeto é composto por atributos e métodos. O estado de um objeto é representado por variáveis denominadas atributos. Alterações no estado de um objeto geralmente ocorrem através da invocação de seus métodos. Métodos são as rotinas que descrevem os possíveis comportamentos ou ações de um objeto. Um método de um objeto é invocadodo através do envio, ao objeto, de uma mensagem apropriada [email protected] 7 Interface (Protocolo) Parte privada do objeto (visão interna) Métodos usados internamente e atributos Parte compartilhada do objeto (interface ou protocolo) Métodos que podem ser invocados externamente Corresponde às mensagens que um objeto é capaz de responder Especifica portanto um contrato quais as operações que o objeto pode e deve realizar Não contém qualquer informação sobre como as operações devem ser executadas ou implementadas [email protected] 8
5 Encapsulamento Princípio aplicado a programação OO visando garantir a abstração dos dados (esconde( os detalhes da implementação). Um objeto não deve permitir que nenhum outro objeto acesse seus dados diretamente. O relacionamento entre objetos deve ocorrer preferencialmente a partir de métodos públicos (interface). Caso haja uma mudança na implementação da classe,, o relacionamento entre os objetos não será afetado. [email protected] 9 Classes Especificam que informações um objeto irá armazenar (os atributos), e o conjunto de requisições que um objeto pode cumprir (os métodos). Encapsulam a implementação dos métodos. Definem a interface de um objeto. Objetos são instâncias de classes. Classes podem ser compostas em hierarquias, através de herança. [email protected] 10
6 Exemplo - Java atributos interface class Produto { private String nome; private float preco; private void calcmargem(float p) (){ public String getnome(){ métodos public void setnome(string n) (){ public float getpreco() (){ [email protected] 11 Figura Polígono Elipse Triângulo Retângulo uma classe meu_triangulo retangulo2 um objeto [email protected] 12
7 Exemplo - Object Pascal type Figura=class private BaseX,BaseY: integer; Visible: boolean; public constructor Cons(bx,by: integer); destructor Destroi; interface procedure Desenha(cor: integer); virtual; procedure Apaga; procedure Move(dx,dy: integer) end; [email protected] 13 Herança Permite a definição de classes específicas (subclasses) a partir de classes gerais (superclasses). Subclasses herdam todos os atributos e métodos da superclasse. Subclasses podem declarar novos métodos e atributos ou mesmo redeclarar métodos definidos pela superclasse (sobreescrever - overriding). [email protected] 14
8 Exemplo C++ class Poligono { protected: int altura, largura; public: void set_valor (int a, int b) { largura=a; altura=b; ; class Retangulo: public Poligono { public: int area (void) { return (altura * largura); ; int main () { Retangulo ret; ret.set_valor(4,3); um objeto uma mensagem [email protected] 15 Herança Quando uma classe B herda de A,, diz-se que B é uma sub- classe de A,, e A é a superclasse de B. B No exemplo anterior Retângulo é uma subclasse de Polígono, e Polígono é a superclasse de Retângulo. Uma subclasse especializa uma superclasse quando redefine métodos, sem ampliar sua interface. Uma subclasse estende uma superclasse quando amplia a sua interface, declarando novos métodos, mas sem redefinir os métodos herdados. Uma subclasse pode ao mesmo tempo estender e especializar uma superclasse. [email protected] 16
9 Herança de Interface Em algumas LPs é possível distinguir entre herança de implementação e herança de interface. Na herança de interface uma classe herda uma ou mais interfaces. As interfaces estabelecem os métodos (e as respectivas assinaturas) que devem ser implementados pela classe, mas a implementação deve ser integralmente especificada pela subclasse. A herança de implementação usualmente implica na herança de interface. [email protected] 17 Exemplo - Java public interface Relogio { Date getdata(); Time gethora(); void setdata(date d); void sethora(time t); uma interface public Class RelogioDigital implements Relogio{ Date getdata(){ Time gethora(){ void setdata(date d){ void sethora(time t){ void setalarme(int size){ void Display(){ uma classe que herda e implementa a interface [email protected] 18
10 Herança de Interface A herança de interface é utilizada quando é preciso garantir que uma determinada classe seja capaz de tratar um conjunto particular de mensagens. A implementação das mensagens é específica de cada classe, e não faz sentido a reutilização de código. Um exemplo comum é a interface Runnable: interface Runnable { void run(); [email protected] 19 Herança Múltipla Em algumas situações pode ser interessante definir uma classe a partir de propriedades de duas ou mais classes distintas. Algumas LPs (C++, Eiffel, Smalltalk) suportam este tipo de estrutura através do mecanismo de herança múltipla. [email protected] 20
11 Exemplo C++ class square{int side; public: int area(){return side * side; ; class color{ char *color_name; public: char *get_color(){return color_name; ; class colored_square: public color, public square{ ; int main () { colored_square s; x = s.get_color(); y = s.area(); [email protected] 21 Anomalia de Herança O mecanismo de herança múltipla introduz um problema conhecido como anomalia de herança. O que acontence com a subclasse se duas super-classes contém métodos com a mesma assinatura? Animais Mamíferos Aquáticos Baleia [email protected] 22
12 Relacionamentos Uma aplicação OO é estruturada através da especificação de classes e objetos, e dos relacionamentos entre estes. A relação de herança por exemplo é usada para obter o efeito de especialização entre classes. Caminhão é uma especialização de veículo. A relação inversa de especialização é a generalização (veículo é uma generalização de caminhão). [email protected] 23 Relacionamentos Outros exemplos de relacionamento entre classes são: Composição ou agregação; Associação; Uso. [email protected] 24
13 Composição Neste caso podemos definir uma classe como sendo composta por objetos de outras classes. Não é necessário nenhuma construção especial para suportar composições, basta declarar as classes componentes como atributos da classe composta. 25 Exemplo Carro Motor Chassi class carro { Motor motor; Chassi chassi; atributos [email protected] 26
14 Uso Ocorre quando as instâncias de uma classe usam os serviços oferecidos por instâncias de outra classe. No exemplo abaixo, Motorista usa os serviços acelera() e freia() de Veículo. Motorista dirigir() Veiculo motor cambio acelera() freia() [email protected] 27 Associação Ocorre quando um objeto faz referência a um objeto de outra classe. No exemplo abaixo, um Motorista está associado a um Veículo. Motorista nome endereço veículo Veículo [email protected] 28
15 Polimorfismo Polimorfismo é a capacidade de um objeto tomar diversas formas. polimorfismo universal adhoc paramétrico subtipo sobrecarga coerção [email protected] 29 Coerção e Sobrecarga Em LPs com coerção um tipo pode ser transformado em outro dependendo do contexto: int x =5; float y = 3.5*x; No caso de sobrecarga, um mesmo nome denota funções diferentes também conforme o contexto: String s = João + Silva ; int x = 4 + 5; [email protected] 30
16 Polimorfismo Paramétrico O comportamento de uma estrutura qualquer depende de uma parâmetro que indica o tipo de dado a ser tratado: Class stack [T] variable lst : List[T] := new List[T] method push(x:t) returns nothing lst := lst.prepend(x) method pop() returns T variable tmp : T := lst.head() lst := lst.tail() return tmp method top() returns T return lst.head() method empty?() returns Boolean returns lst.empty?() [email protected] 31 Polimorfismo de Subtipo Este é o polimorfismo mais comum em LPs OO, e é o tipo ao qual geralmente nos referimos quando utilizamos o termo polimorfismo. Quando declaramos uma variável como sendo de uma classe específica, ela pode conter instâncias de quaisquer subclasses desta classe específica. Como a interpretação de uma mensagem é da responsabilidade do objeto que a recebe, uma mesma mensagem pode ser interpretada de forma diferente dependendo do objeto que a recebe. A definição do método que irá ser executado como resultado do envio de uma mensagem geralmente só acontece em tempo de execução (late( late-binding). [email protected] 32
17 Exemplo Animal a; a = new Cachorro(); a.falar(); au! au! a = new Gato(); a.falar(); miau! miau! a = new Galinha(); a.falar(); cocorocó! [email protected] 33 Typecast Para acessar um método específico de uma subclasse é necessário fazer um typecast da variável declarada como da superclasse. Exemplo: Animal a; a = new Galinha(); ((Galinha)a).botar_ovo; a = new Cachorro(); ((Galinha)a).botar_ovo; erro [email protected] 34
18 Classes Abstratas Na hierarquia abaixo, a classe Figura existe apenas para dar origem às classes Polígono e Círculo.. Não podem ser criadas instâncias dessa classe já que sua especificação é imcompleta. Figura Polígono Círculo Classes abstratas são classes para as quais não podem ser criadas instâncias. Elas existem na hierarquia de classes apenas para definir a interface de subclasses. [email protected] 35 Exemplo C++ class Figura { public: virtual float get_area() = 0; virtual float get_perimetro = 0; ; class Circulo::Figura { public: float get_area(){ return 3.14*raio*raio; float get_perimetro{ return 6,28*raio; ; [email protected] 36
19 Métodos Virtuais ou Abstratos Quando apenas a assinatura de um método é declarada por uma classe este método é denominado virtual ou abstrato. Classes abstratas devem ter pelo menos um método virtual. Em C++ apenas os métodos declarados como virtuais são vinculados dinamicamente (late- binding). Em Java todos os métodos são vinculados dinamicamente. [email protected] 37 Late Binding em C++ Para implementar o late binding de métodos, o compilador C++ cria uma tabela denominda VTABLE para todas as classes que contém métodos virtuais. A VTABLE armazena o endereço dos métodos virtuais. Adicionalmente, para todas as classes com métodos virtuais é criado um atributo denominado vpointer (VPTR) que aponta para a VTABLE do objeto. Quando um método é invocado, a VTABLE do objeto é utilizada para descobrir o endereço do método especívifo que deve ser executado. [email protected] 38
20 Late Binding em C++ Animal a[3]; a[0] = new Gato(); a[1] = new Cachorro(); a[2] = new Galinha(); array de Animal instância de Gato vptr instância de Cachorro vptr instância de Galinha vptr VTABLEs &Gato:: falar &Gato:: comer &Cachorro:: falar &Cachorro:: comer &Galinha:: falar &Galinha:: comer [email protected] 39 Construtores e Destrutores A instanciação de um objeto usualmente acontece através da invocação de um método especial conhecido como construtor. O construtor é responsável por inicializar adequadamento o objeto. Algumas LPs OO suportam também o conceito de destrutores, métodos que são executados antes de um objeto ser destruído (desalocado da memória). [email protected] 40
21 Exemplo class Date { private: int day; int month; int year; public: // Construtor Date(int d, int m, int y) { set(d, m, y); // Destrutor ~Date(){ void set(int d, int m, int y); ; [email protected] 41 Sobrecarga em LPs OO Em programação OO é bastante comum a definição de métodos sobrecarregados. Um exemplo de aplicação é na definição de construtores. O método associado a uma invocação pode ser determinado a partir da análise léxica (estática) do código (desde que não haja a possibilidade de polimorfismo). [email protected] 42
22 Exemplo class Date { private: int day, month, year; public: // Construtor 1 Date(int d, int m, int y) { set(d, m, y); // Construtor 2 Date() { set(1, 1, 2000); ; int main () { Date d(); // Construtor 1 [email protected] 43 Atributos de Classes e Métodos Estáticos Em algumas LPs OO pode-se definir atributos associados diretamente a uma classe. Os atributos de uma classe podem ser manipulados apenas por métodos estáticos métodos que também são associados a uma classe. Atributos de classe são equivalentes a variáveis globais de LPs não OO, e métodos estáticos equivalem a funções ordinárias. [email protected] 44
23 Exemplos public class Math{ private static double pi = 3.14; public static double getpi(){ return pi; public class Teste{ private static int instances = 0; public Test(){ ++instances; [email protected] 45
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
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
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
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
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
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
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?
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
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
Java para Desktop. Programação Orientada à Objetos 2 JSE
Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona
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
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
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
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
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
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(){
Relacionamentos entre objetos
Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores t e sobrecarga Variáveis de classe e de instância Reinaldo Gomes [email protected] Objetos
Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br
Curso teórico: Orientação a Objetos Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br Objetivos Conhecer os conceitos fundamentais de orientação a objetos; Aprender a criar e utilizar
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
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
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
Laboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
PROGRAMAÇÃO ORIENTADA A
PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, MS M.Sc. [email protected] ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos
Introduçã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í
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
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
Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Programação 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
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
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
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
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
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
POO e C++: Herança e Polimorfismo
POO e C++: Herança e Polimorfismo Márcio Santi Luiz Fernando Martha Conceito de Herança em POO Recurso que torna o conceito de classe mais poderoso; Permite que se construa e estenda continuamente classes
Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental
Orientação a Objetos (OO) LPG II - Java Orientação a Objetos (OO) Roberto Vedoato [email protected] Programação Procedimental x Orientada a Objetos Objetivos e Benefícios da Orientação a Objetos
Laboratório de programação II
Laboratório de programação II Paradigma de orientação a Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Sumário Contextualização Paradigma de orientação a Contextualização A construção
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
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
Daniel Wildt
Orientação a Objetos 1 Daniel Wildt http://danielwildt.blogspot.com Agenda 2 Orientação a Objetos Classe x Objeto Representação classe Atributos / operações Construtores e Destrutores Liberando memória
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
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
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
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,
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 I
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Herança simples Composição Combinando composição e herança Polimorfismo e funções virtuais Classes abstratas
Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.
Orientação a Objetos Revisão Conceitos CLASSE CLASSIFICAÇÃO GENERALIZAÇÃO ESPECIALIZAÇÃO HERANÇA INTERFACES POLIMORFISMO SOBRECARGA ENCAPSULAMENTO ABSTRAÇÃO MODULARIZAÇÃO 9 CLASSE Classe é um agrupamento
Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded
Programação Orientada a Objetos
Programação Orientada a Objetos Introdução Alguns conceitos importantes Orientação a Objetos Alguns conceitos importantes Programação Estruturada X Programação OO Classes Objetos Construtores e Destrutores
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
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
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
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 e Polimorfismo
Herança e Polimorfismo Leonardo Gresta Paulino Murta [email protected] Aula de hoje Princípios do paradigma OO Herança Polimorfismo Interfaces Classes Abstratas Leonardo Murta Herança e Polimorfismo 2
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 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
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
Introdução à Programação. Encapsulamento e Herança
Introdução à Programação Encapsulamento e Herança Tópicos da Aula Hoje, aprenderemos conceitos mais avançados de Orientação a Objetos Encapsulamento Usando modificadores de acesso em C++ Herança Importância
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
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
Linguagem de Programação I Apresentação da Disciplina
Linguagem de Programação I Apresentação da Disciplina Apresentação da Disciplina Conteúdo: 1) Orientação a Objetos - Características da OO - Reutilização de código 2) Introdução à Linguagem Java - Histórico
Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição
Diagrama de Classes Diagrama de Classes Classes Atributos Métodos Relacionamentos Associação Agregação Composição Generalização Dependência Realização Sobre Classes São o elemento mais importante de qualquer
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
Aprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda.
Aprendendo Java 2 Rodrigo Mello Ramon Chiara Renato Villela Novatec Editora Ltda. www.novateceditora.com.br 1 Programação Orientada a Objetos O que é Programação Orientada a Objetos? É um paradigma de
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
Python Orientação a Objetos. Introdução à Programação SI2
Python Orientação a Objetos Introdução à Programação SI2 Herança Pessoa Aluno Professor Herança Animal Mamifero Ave Cachorro Gato Gavião Galinha Herança Uma classe pode herdar a definição de outra classe:
Linguagem de Programação C++
Exercício: Linguagem de Programação C++ Construa o diagrama de classes UML para as classes envolvidas na solução do exercício do slide 253. 267 Sobrecarga Linguagem de Programação C++ Neste exercício vimos
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
Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos [email protected] Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
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
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
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...
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
Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU
Aula 10 POO 1 Classes Abstratas Profa. Elaine Faria UFU - 2019 Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos
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
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
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
Orientação a objetos. Objetos ou Instâncias I
Orientação a objetos Objetos ou Instâncias Métodos ou Mensagens Encapsulamento Classes Variáveis da Classe X Variáveis da Instância Métodos da Classe X Métodos da Instância Relacionamentos Identificando
Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces
Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces 0 Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces Classes Abstratas À medida que você sobe na hierarquia de herança,
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
Introdução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012
Introdução à Orientação a Objetos SSC 121 - Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Conteúdo Histórico de OO Vantagens de OO Linguagens OO Conceitos Básicos de OO
Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental
Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de Orientação a Objetos (OO) Roberto Vedoato [email protected] Programação Procedimental x Orientada a Objetos Objetivos e Benefícios
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
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como
Conceitos de Programação Orientada a Objetos
Conceitos de Programação Orientada a Objetos [email protected] 80 Por que a Orientação a Objetos? As abstrações podem corresponder às "coisas" do domínio do problema, facilitando o entendimento Esta
Programação Orientada a Objetos em Python
Programação Orientada a Objetos em Python Diego Silveira Costa Nascimento Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte [email protected] 23 de junho de 2017 Ementa
Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010
Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
Linguagem de Programação 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
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
