Escolar Documentos
Profissional Documentos
Cultura Documentos
2o semestre de 2011
2011/2
1 / 60
Objetivo da Aula
2011/2
2 / 60
Objetivo da Aula
2011/2
2 / 60
Objetivo da Aula
Denir a Programao Orientada a Objetos; Apresentar os principais conceitos de Orientao a Objeto; Demonstrar a importncia do desenvolvimento orientado a objetos.
2011/2
2 / 60
Sumrio
Orientao a Objetos Conceitos Bsicos Objetos Classes Atributos Mtodos Relacionamento entre Classes Polimorsmo UML
2011/2
3 / 60
Orientao a Objetos
Orientao a Objetos
2011/2
4 / 60
Orientao a Objetos
2011/2
5 / 60
Orientao a Objetos
um paradigma de programao.
2011/2
5 / 60
Orientao a Objetos
2011/2
5 / 60
Orientao a Objetos
2011/2
5 / 60
Orientao a Objetos
um paradigma de programao. Nova pergunta: O que paradigma? Do grego pardeigma: literalmente modelo, a representao de um padro a ser seguido; Na Filosoa grega, era considerado a uncia (uxo) de um pensamento;
2011/2
5 / 60
Orientao a Objetos
um paradigma de programao. Nova pergunta: O que paradigma? Do grego pardeigma: literalmente modelo, a representao de um padro a ser seguido; Na Filosoa grega, era considerado a uncia (uxo) de um pensamento; Para ns, paradigma se dene na forma como o programador lida com um determinado problema; Um paradigma de programao fornece e determina a viso que o programador possui sobre a estruturao e execuo do programa.
2011/2
5 / 60
Orientao a Objetos
Paradigmas de programao
Existem diversos paradigmas de programao;
2011/2
6 / 60
Orientao a Objetos
Paradigmas de programao
Existem diversos paradigmas de programao; Cada um apropriado para a resoluo de um tipo de problema;
2011/2
6 / 60
Orientao a Objetos
Paradigmas de programao
Existem diversos paradigmas de programao; Cada um apropriado para a resoluo de um tipo de problema; Muitas vezes, a escolha do paradigma sofre inuencia cultural ou de conhecimento cientco.
2011/2
6 / 60
Orientao a Objetos
Paradigmas de programao
Existem diversos paradigmas de programao; Cada um apropriado para a resoluo de um tipo de problema; Muitas vezes, a escolha do paradigma sofre inuencia cultural ou de conhecimento cientco. Alguns paradigmas: Imperativo: Os programas se constituem em uma seqncia de comandos. Exemplo: Fortran;
2011/2
6 / 60
Orientao a Objetos
Paradigmas de programao
Existem diversos paradigmas de programao; Cada um apropriado para a resoluo de um tipo de problema; Muitas vezes, a escolha do paradigma sofre inuencia cultural ou de conhecimento cientco. Alguns paradigmas: Imperativo: Os programas se constituem em uma seqncia de comandos. Exemplo: Fortran; Funcional: Programas usam blocos de cdigo construdos para agir como funes matemticas. Exemplo: LISP;
2011/2
6 / 60
Orientao a Objetos
Paradigmas de programao
Existem diversos paradigmas de programao; Cada um apropriado para a resoluo de um tipo de problema; Muitas vezes, a escolha do paradigma sofre inuencia cultural ou de conhecimento cientco. Alguns paradigmas: Imperativo: Os programas se constituem em uma seqncia de comandos. Exemplo: Fortran; Funcional: Programas usam blocos de cdigo construdos para agir como funes matemticas. Exemplo: LISP; Lgica: A entrada e a sada so relacionadas atravs de regras lgicas e de inferncia. Exemplo: PROLOG;
2011/2
6 / 60
Orientao a Objetos
Paradigmas de programao
Os dois paradigmas de programao mais inuentes hoje: Programao Estruturada: Um tipo de programao imperativa, reduz os problemas a trs tipos de estruturas: sequncias, deciso e interao. Exemplo: PASCAL, C (ANSI);
2011/2
7 / 60
Orientao a Objetos
Paradigmas de programao
Os dois paradigmas de programao mais inuentes hoje: Programao Estruturada: Um tipo de programao imperativa, reduz os problemas a trs tipos de estruturas: sequncias, deciso e interao. Exemplo: PASCAL, C (ANSI); Programao Orientada a Objetos: Tambm uma variao da programao imperativa onde o foco a modelagem dos dados. Exemplo: C++, Java;
2011/2
7 / 60
Orientao a Objetos
2011/2
8 / 60
Orientao a Objetos
Gerenciar a complexidade crescente dos sistemas sendo construdos nas empresas; Viabilizar o trabalho conjunto de grandes equipes;
2011/2
8 / 60
Orientao a Objetos
Gerenciar a complexidade crescente dos sistemas sendo construdos nas empresas; Viabilizar o trabalho conjunto de grandes equipes; Aumentar a produtividade dos analistas e programadores;
2011/2
8 / 60
Orientao a Objetos
Gerenciar a complexidade crescente dos sistemas sendo construdos nas empresas; Viabilizar o trabalho conjunto de grandes equipes; Aumentar a produtividade dos analistas e programadores; Reutilizao de cdigo pronto e depurado escrito em sistemas anteriores ou adquiridos no mercado.
2011/2
8 / 60
Conceitos
Conceitos Bsicos
2011/2
9 / 60
Conceitos
Objeto;
2011/2
10 / 60
Conceitos
Objeto; Classe;
2011/2
10 / 60
Conceitos
2011/2
10 / 60
Conceitos
2011/2
10 / 60
Conceitos
2011/2
10 / 60
Conceitos
2011/2
10 / 60
Conceitos
2011/2
10 / 60
Conceitos
Objetos
Objetos
Um objeto representa qualquer coisa do mundo real (seja fsica ou conceitual) que seja manipulada pelo nosso programa, ou representa blocos de construo do prprio programa.
2011/2
11 / 60
Conceitos
Objetos
Objetos
O programa;
2011/2
12 / 60
Conceitos
Objetos
Objetos
2011/2
12 / 60
Conceitos
Objetos
Objetos
2011/2
12 / 60
Conceitos
Objetos
Objetos
2011/2
12 / 60
Conceitos
Objetos
Objetos
2011/2
12 / 60
Conceitos
Objetos
Objetos
2011/2
12 / 60
Conceitos
Objetos
Objetos
Assim como as coisas no mundo real, os objetos tem caractersticas e aes possveis.
2011/2
13 / 60
Conceitos
Objetos
Objetos
Assim como as coisas no mundo real, os objetos tem caractersticas e aes possveis. Atributos: so informaes sobre o objeto, como a sua cor, seu peso, o saldo da conta-corrente, etc.
2011/2
13 / 60
Conceitos
Objetos
Objetos
Assim como as coisas no mundo real, os objetos tem caractersticas e aes possveis. Atributos: so informaes sobre o objeto, como a sua cor, seu peso, o saldo da conta-corrente, etc. Mtodos: so aes que podem ser feitas com ou pelo objeto, como depositar em uma conta-corrente ou mudar a cor de uma janela.
2011/2
13 / 60
Conceitos
Objetos
2011/2
14 / 60
Conceitos
Objetos
Os objetos se comunicam atravs de mensagens; Mensagens so requisies para que o objeto execute uma de suas aes;
2011/2
14 / 60
Conceitos
Objetos
Os objetos se comunicam atravs de mensagens; Mensagens so requisies para que o objeto execute uma de suas aes; O objeto executa a requisio da mensagem com base em seus prprios atributos;
2011/2
14 / 60
Conceitos
Objetos
Os objetos se comunicam atravs de mensagens; Mensagens so requisies para que o objeto execute uma de suas aes; O objeto executa a requisio da mensagem com base em seus prprios atributos; A mensagem pode especicar tambm parametros de entrada (argumentos) e de sada (retorno);
2011/2
14 / 60
Conceitos
Objetos
Os objetos se comunicam atravs de mensagens; Mensagens so requisies para que o objeto execute uma de suas aes; O objeto executa a requisio da mensagem com base em seus prprios atributos; A mensagem pode especicar tambm parametros de entrada (argumentos) e de sada (retorno); Na prtica, a mensagem a chamada de um dos mtodos do objeto;
2011/2
14 / 60
Conceitos
Classes
Classes
Se vrios objetos so semelhantes, dizemos que estes objetos pertencem a uma mesma classe.
2011/2
15 / 60
Conceitos
Classes
Classes
Se vrios objetos so semelhantes, dizemos que estes objetos pertencem a uma mesma classe.
Possuem o mesmo tipo de informao em seus atributos;
2011/2
15 / 60
Conceitos
Classes
Classes
Se vrios objetos so semelhantes, dizemos que estes objetos pertencem a uma mesma classe.
Possuem o mesmo tipo de informao em seus atributos; Podem realizar os mesmos mtodos.
2011/2
15 / 60
Conceitos
Classes
Classes
Se vrios objetos so semelhantes, dizemos que estes objetos pertencem a uma mesma classe.
Possuem o mesmo tipo de informao em seus atributos; Podem realizar os mesmos mtodos.
Assim, uma classe ContaCorrente pode denir todos os atributos e mtodos que uma conta-corrente qualquer pode ter.
2011/2
15 / 60
Conceitos
Classes
Instncia
Dizemos que um objeto em particular de uma dada classe uma instncia desta classe.
Objeto Instncia
2011/2
16 / 60
Conceitos
Classes
Classe Instncia
A clsse funcionrio
Os funcionrios Fernando e Ricardo O corsa verde placa LCW 1649 A nota scal #21234 referente a um gaveteiro de escritrio
2011/2
17 / 60
Conceitos
Classes
Encapsulamento
uma forma de modularizar o cdigo;
Abstrao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 18 / 60
Conceitos
Classes
Encapsulamento
uma forma de modularizar o cdigo; a combinao dos atributos e dos mtodos que manitulam estes atributos em um nico objeto.
Abstrao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 18 / 60
Conceitos
Classes
Encapsulamento
uma forma de modularizar o cdigo; a combinao dos atributos e dos mtodos que manitulam estes atributos em um nico objeto. Concentramos os aspectos essenciais de um determinado grupo de objetos no contexto de interesse para denir a classe qual eles pertencem ;
Abstrao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 18 / 60
Conceitos
Classes
Encapsulamento
uma forma de modularizar o cdigo; a combinao dos atributos e dos mtodos que manitulam estes atributos em um nico objeto. Concentramos os aspectos essenciais de um determinado grupo de objetos no contexto de interesse para denir a classe qual eles pertencem ; O encapsulamento separa aspectos internos e externos de um objeto;
Abstrao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 18 / 60
Conceitos
Classes
Encapsulamento
uma forma de modularizar o cdigo; a combinao dos atributos e dos mtodos que manitulam estes atributos em um nico objeto. Concentramos os aspectos essenciais de um determinado grupo de objetos no contexto de interesse para denir a classe qual eles pertencem ; O encapsulamento separa aspectos internos e externos de um objeto; Disponibiliza externamente apenas o que ser necessrio para o reuso da classe;
Abstrao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 18 / 60
Conceitos
Classes
Encapsulamento
uma forma de modularizar o cdigo; a combinao dos atributos e dos mtodos que manitulam estes atributos em um nico objeto. Concentramos os aspectos essenciais de um determinado grupo de objetos no contexto de interesse para denir a classe qual eles pertencem ; O encapsulamento separa aspectos internos e externos de um objeto; Disponibiliza externamente apenas o que ser necessrio para o reuso da classe; Desenvolvimento de classes encapsuladas corretamente tornam o cdigo mais robusto e facilita o seu reuso.
Abstrao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 18 / 60
Conceitos
Classes
Em um programa Orientado a Objetos, escrevemos (programamos) denies de classes em vez de funes e subrotinas;
2011/2
19 / 60
Conceitos
Classes
Em um programa Orientado a Objetos, escrevemos (programamos) denies de classes em vez de funes e subrotinas; Cada instncia possui o seu prprio conjunto de atributos, independente de outras instncias da mesma ou de outras classes;
2011/2
19 / 60
Conceitos
Classes
Em um programa Orientado a Objetos, escrevemos (programamos) denies de classes em vez de funes e subrotinas; Cada instncia possui o seu prprio conjunto de atributos, independente de outras instncias da mesma ou de outras classes; Todas as instncias de uma mesma classe compartilham as mesmas denies de mtodos.
2011/2
19 / 60
Conceitos
Classes
2011/2
20 / 60
Conceitos
Atributos
Atributos
So as caractersticas do objeto;
2011/2
21 / 60
Conceitos
Atributos
Atributos
2011/2
21 / 60
Conceitos
Atributos
Atributos
So as caractersticas do objeto; Consiste no conjunto de variveis denidas dentro da classe; A classe dene quais os atributos e seu tipo, mas o valor prprio do objeto.
2011/2
21 / 60
Conceitos
Atributos
Atributos
So as caractersticas do objeto; Consiste no conjunto de variveis denidas dentro da classe; A classe dene quais os atributos e seu tipo, mas o valor prprio do objeto. O valor do atributo em um objeto independente do valor do mesmo atributo em outro objeto da mesma classe.
2011/2
21 / 60
Conceitos
Mtodos
Mtodos
2011/2
22 / 60
Conceitos
Mtodos
Mtodos
So as aes que o objeto pode realizar; Cada mtodo consiste em um conjunto de instrues seqenciais que podem retornar um resultado;
2011/2
22 / 60
Conceitos
Mtodos
Mtodos
So as aes que o objeto pode realizar; Cada mtodo consiste em um conjunto de instrues seqenciais que podem retornar um resultado; Todos os objetos de uma mesma clsse possuem as mesmas denies de mtodo;
2011/2
22 / 60
Conceitos
Mtodos
Mtodos
So as aes que o objeto pode realizar; Cada mtodo consiste em um conjunto de instrues seqenciais que podem retornar um resultado; Todos os objetos de uma mesma clsse possuem as mesmas denies de mtodo; A execuo do mtodo utiliza os atributos do objeto cujo mtodo est sendo executado.
2011/2
22 / 60
Conceitos
Mtodos
Assinatura de Mtodos
A assinatura de um mtodo denida pelo nome do mtodo, com seu tipo de retorno e argumentos;
2011/2
23 / 60
Conceitos
Mtodos
Assinatura de Mtodos
A assinatura de um mtodo denida pelo nome do mtodo, com seu tipo de retorno e argumentos; A assinatura necessria para a identicao do mtodo.
2011/2
23 / 60
Conceitos
Associao;
2011/2
24 / 60
Conceitos
Associao; Composio;
2011/2
24 / 60
Conceitos
2011/2
24 / 60
Conceitos
Associao
Lembrando que o envio de mensagem corresponde a chamada de mtodo de outro objeto. Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 25 / 60
Conceitos
Associao
Tambm conhecido como clientela; o envio de mensagem de um objeto para outro objeto ;
Lembrando que o envio de mensagem corresponde a chamada de mtodo de outro objeto. Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 25 / 60
Conceitos
Associao
Tambm conhecido como clientela; o envio de mensagem de um objeto para outro objeto ; um mecanismo pelo qual um objeto utiliza os recursos de outro.
Lembrando que o envio de mensagem corresponde a chamada de mtodo de outro objeto. Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 25 / 60
Conceitos
Composio
2011/2
26 / 60
Conceitos
Composio
quando um objeto atributo de outro; Um objeto pode ser composto por um conjunto de outros objetos;
2011/2
26 / 60
Conceitos
Composio
quando um objeto atributo de outro; Um objeto pode ser composto por um conjunto de outros objetos; Facilita o trabalho com objetos muito complexos.
2011/2
26 / 60
Conceitos
Herana ou Especializao
Uma classe pode ser derivada de outra classe, e desta forma herdar tanto seus atributos quanto os seus mtodos;
2011/2
27 / 60
Conceitos
Herana ou Especializao
Uma classe pode ser derivada de outra classe, e desta forma herdar tanto seus atributos quanto os seus mtodos; A criao de subclasses (classes derivadas de uma superclasse) permite o aumento incremental da funcionalidade dos nossos objetos ou sua especializao;
2011/2
27 / 60
Conceitos
Herana ou Especializao
Uma classe pode ser derivada de outra classe, e desta forma herdar tanto seus atributos quanto os seus mtodos; A criao de subclasses (classes derivadas de uma superclasse) permite o aumento incremental da funcionalidade dos nossos objetos ou sua especializao; Se precisarmos de um objeto que faa o mesmo que outro objeto faz e mais alguma coisa, aproveitamos o cdigo que j est pronto e testado, denindo uma subclasse contendo apenas as novidades.
2011/2
27 / 60
Conceitos
Especializao de Classes
2011/2
28 / 60
Conceitos
Herana Mltipla
2011/2
29 / 60
Conceitos
Herana Mltipla
a capacidade de uma classe herdar de duas ou mais classes distintas; Necessria ateno com relao a nome de membros duplicados nas hierarquias das superclasses;
2011/2
29 / 60
Conceitos
Herana Mltipla
a capacidade de uma classe herdar de duas ou mais classes distintas; Necessria ateno com relao a nome de membros duplicados nas hierarquias das superclasses; necessrio algum mecanismo para determinar a qual membro herdado que o acesso se refere;
2011/2
29 / 60
Conceitos
Herana Mltipla
a capacidade de uma classe herdar de duas ou mais classes distintas; Necessria ateno com relao a nome de membros duplicados nas hierarquias das superclasses; necessrio algum mecanismo para determinar a qual membro herdado que o acesso se refere; Algumas linguagens, como o Java, no usam.
2011/2
29 / 60
Conceitos
Polimorsmo
Polimorsmo
Mtodos e atributos.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 30 / 60
Conceitos
Polimorsmo
Polimorsmo
Mtodos e atributos.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 30 / 60
Conceitos
Polimorsmo
Polimorsmo
Mtodos e atributos.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 30 / 60
Conceitos
Polimorsmo
Polimorsmo
Mtodos e atributos.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 30 / 60
Conceitos
Polimorsmo
Polimorsmo Ad Hoc
Overloading.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 31 / 60
Conceitos
Polimorsmo
Polimorsmo Ad Hoc
Tambm conhecido como sobrecarga ; Pode-se denir mtodos com mesmo nome, porm com argumentos diferentes;
Overloading.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 31 / 60
Conceitos
Polimorsmo
Polimorsmo Ad Hoc
Tambm conhecido como sobrecarga ; Pode-se denir mtodos com mesmo nome, porm com argumentos diferentes; A diferena nos argumentos torna a assinatura diferente, diferenciando assim o mtodo;
Overloading.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 31 / 60
Conceitos
Polimorsmo
Polimorsmo Ad Hoc
Tambm conhecido como sobrecarga ; Pode-se denir mtodos com mesmo nome, porm com argumentos diferentes; A diferena nos argumentos torna a assinatura diferente, diferenciando assim o mtodo; Em Java, a sobrecarga pode mudar tanto a quantidade quanto os tipos dos argumentos, mas no pode mudar apenas o tipo de valor do retorno de um mtodo.
Overloading.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 31 / 60
Conceitos
Polimorsmo
Polimorsmo de Herana
Overriding.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 32 / 60
Conceitos
Polimorsmo
Polimorsmo de Herana
Tambm conhecido como sobrescrita ou sobreposio Uma classe derivada pode sobrepor membros herdados, modicando o seu comportamento ou anulando-os completamente;
Overriding.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 32 / 60
Conceitos
Polimorsmo
Polimorsmo de Herana
Tambm conhecido como sobrescrita ou sobreposio Uma classe derivada pode sobrepor membros herdados, modicando o seu comportamento ou anulando-os completamente; Se um membro declarado tanto na superclasse quanto na subclasse, o membro da subclasse predomina.
Overriding.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 32 / 60
Conceitos
Polimorsmo
Polimorsmo Paramtrico
Conceitos
Polimorsmo
Polimorsmo Paramtrico
Tambm conhecido como Template ou Generics ; Permite criar um mtodo que no tenha um tipo pr-denido;
Conceitos
Polimorsmo
Polimorsmo Paramtrico
Tambm conhecido como Template ou Generics ; Permite criar um mtodo que no tenha um tipo pr-denido; Sua tipagem ser um parmetro a ser invocado na chamada do mtodo;
Conceitos
Polimorsmo
Polimorsmo Paramtrico
Tambm conhecido como Template ou Generics ; Permite criar um mtodo que no tenha um tipo pr-denido; Sua tipagem ser um parmetro a ser invocado na chamada do mtodo; De acordo com o parmetro passado, o comportamento pode vir a ser alterado.
Conceitos
Polimorsmo
Late Binding
2011/2
34 / 60
Conceitos
Polimorsmo
Late Binding
Em portugus, ligao tardia; um mecanismo pelo qual a denio do mtodo a ser invocado ocorra somente durante a execuo do programa;
2011/2
34 / 60
Conceitos
Polimorsmo
Late Binding
Em portugus, ligao tardia; um mecanismo pelo qual a denio do mtodo a ser invocado ocorra somente durante a execuo do programa; necessrio para a utilizao de polimorsmo, pois permite que seja programada a chamada do mtodo sem a necessidade de especicar a sua implementao especca;
2011/2
34 / 60
Conceitos
Polimorsmo
Late Binding
Em portugus, ligao tardia; um mecanismo pelo qual a denio do mtodo a ser invocado ocorra somente durante a execuo do programa; necessrio para a utilizao de polimorsmo, pois permite que seja programada a chamada do mtodo sem a necessidade de especicar a sua implementao especca; Quando o mtodo a ser invocado denido durante a compilao do programa, chamamos de ligao prematura ou early binding.
2011/2
34 / 60
Conceitos
Polimorsmo
Converso de Tipo
2011/2
35 / 60
Conceitos
Polimorsmo
Converso de Tipo
a habilidade que alguns elementos possuem de mudar de tipo; Nem toda converso possvel. necessrio um nvel de compatibilidade.
2011/2
35 / 60
Conceitos
Polimorsmo
Converso de Tipo
a habilidade que alguns elementos possuem de mudar de tipo; Nem toda converso possvel. necessrio um nvel de compatibilidade. Implicita: Normalmente, caracterizada pela atribuio de um elemento de tipo menos abrangente (ou uma subclasse) para uma varivel de tipo mais abrangente (ou uma superclasse).
2011/2
35 / 60
Conceitos
Polimorsmo
Converso de Tipo
a habilidade que alguns elementos possuem de mudar de tipo; Nem toda converso possvel. necessrio um nvel de compatibilidade. Implicita: Normalmente, caracterizada pela atribuio de um elemento de tipo menos abrangente (ou uma subclasse) para uma varivel de tipo mais abrangente (ou uma superclasse). Cast: uma converso explicita. O programador deve conhecer a compatibilidade entre os tipos e declarar a converso especca no cdigo fonte.
2011/2
35 / 60
Conceitos
Polimorsmo
Classes Abstratas
Muitas vezes temos conceitos que se aplicam a todo um conjunto de classes, determinando comportamentos que gostaramos de herdar de uma superclasse, mas no faria sentido instanciar objetos desta superclasse;
sem implementao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 36 / 60
Conceitos
Polimorsmo
Classes Abstratas
Muitas vezes temos conceitos que se aplicam a todo um conjunto de classes, determinando comportamentos que gostaramos de herdar de uma superclasse, mas no faria sentido instanciar objetos desta superclasse; Denimos ento esta superclasse como sendo abstrata, de modo que ela possa fornecer estado e comportamento para classes derivadas, ou utiliza-la como tipo de dados para referncias, mas no seja permitido criar instncias;
sem implementao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 36 / 60
Conceitos
Polimorsmo
Classes Abstratas
Muitas vezes temos conceitos que se aplicam a todo um conjunto de classes, determinando comportamentos que gostaramos de herdar de uma superclasse, mas no faria sentido instanciar objetos desta superclasse; Denimos ento esta superclasse como sendo abstrata, de modo que ela possa fornecer estado e comportamento para classes derivadas, ou utiliza-la como tipo de dados para referncias, mas no seja permitido criar instncias; Classes abstratas podem conter mtodos abstratos ;
sem implementao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 36 / 60
Conceitos
Polimorsmo
Classes Abstratas
Muitas vezes temos conceitos que se aplicam a todo um conjunto de classes, determinando comportamentos que gostaramos de herdar de uma superclasse, mas no faria sentido instanciar objetos desta superclasse; Denimos ento esta superclasse como sendo abstrata, de modo que ela possa fornecer estado e comportamento para classes derivadas, ou utiliza-la como tipo de dados para referncias, mas no seja permitido criar instncias; Classes abstratas podem conter mtodos abstratos ; Coloca-se a assinatura do mtodo, mas no o seu corpo;
sem implementao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 36 / 60
Conceitos
Polimorsmo
Classes Abstratas
Muitas vezes temos conceitos que se aplicam a todo um conjunto de classes, determinando comportamentos que gostaramos de herdar de uma superclasse, mas no faria sentido instanciar objetos desta superclasse; Denimos ento esta superclasse como sendo abstrata, de modo que ela possa fornecer estado e comportamento para classes derivadas, ou utiliza-la como tipo de dados para referncias, mas no seja permitido criar instncias; Classes abstratas podem conter mtodos abstratos ; Coloca-se a assinatura do mtodo, mas no o seu corpo; Sua sub-classe obrigada a implementar o mtodo.
sem implementao
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 36 / 60
Conceitos
Polimorsmo
Classes Concretas
2011/2
37 / 60
Conceitos
Polimorsmo
Classes Concretas
So classes que podem ser instanciadas; Classes concretas no podem ter mtodos abstratos;
2011/2
37 / 60
Conceitos
Polimorsmo
Classes Concretas
So classes que podem ser instanciadas; Classes concretas no podem ter mtodos abstratos; Elas devem implementar todos os mtodos abstratos de suas superclasses.
2011/2
37 / 60
Conceitos
Polimorsmo
Interfaces
Interfaces so componentes de software que denem a viso que o mundo externo ter de um determinado grupo de classes;
2011/2
38 / 60
Conceitos
Polimorsmo
Interfaces
Interfaces so componentes de software que denem a viso que o mundo externo ter de um determinado grupo de classes; Elas contm as assinaturas dos mtodos pblicos que devem constar nas classes que as implementem;
2011/2
38 / 60
Conceitos
Polimorsmo
Interfaces
Interfaces so componentes de software que denem a viso que o mundo externo ter de um determinado grupo de classes; Elas contm as assinaturas dos mtodos pblicos que devem constar nas classes que as implementem; Interfaces nunca contm mtodos implementados, apenas suas assinaturas.
2011/2
38 / 60
Conceitos
Polimorsmo
Interfaces
Interfaces so componentes de software que denem a viso que o mundo externo ter de um determinado grupo de classes; Elas contm as assinaturas dos mtodos pblicos que devem constar nas classes que as implementem; Interfaces nunca contm mtodos implementados, apenas suas assinaturas. Elas funcionam como um contrato entre a classe e o sistema: Quando uma classe implementa uma interface, ela est se comprometendo a fornecer o comportamento publicado pela interface;
2011/2
38 / 60
Conceitos
Polimorsmo
Pacotes
2011/2
39 / 60
Conceitos
Polimorsmo
Pacotes
Tambm conhecido com namespace; So referncias para a organizao lgica de classes e interfaces;
2011/2
39 / 60
Conceitos
Polimorsmo
Pacotes
Tambm conhecido com namespace; So referncias para a organizao lgica de classes e interfaces; Um pacote pode conter outros pacotes, formando uma organizao hierrquica;
2011/2
39 / 60
Conceitos
Polimorsmo
Pacotes
Tambm conhecido com namespace; So referncias para a organizao lgica de classes e interfaces; Um pacote pode conter outros pacotes, formando uma organizao hierrquica; Sua organizao facilita o desenvolvimento e reuso de classes.
2011/2
39 / 60
Conceitos
Polimorsmo
Visibilidade
Permite controlar o acesso aos membros de uma classe;
Conceitos
Polimorsmo
Visibilidade
Permite controlar o acesso aos membros de uma classe; Fundamental para o encapsulamento;
Conceitos
Polimorsmo
Visibilidade
Permite controlar o acesso aos membros de uma classe; Fundamental para o encapsulamento; Evitar acessos indevidos a membros por outras classes ;
Conceitos
Polimorsmo
Visibilidade
Permite controlar o acesso aos membros de uma classe; Fundamental para o encapsulamento; Evitar acessos indevidos a membros por outras classes ; Tipos de visibilidade:
Conceitos
Polimorsmo
Visibilidade
Permite controlar o acesso aos membros de uma classe; Fundamental para o encapsulamento; Evitar acessos indevidos a membros por outras classes ; Tipos de visibilidade: Membros pblicos: Acessveis em qualquer lugar do programa.
Conceitos
Polimorsmo
Visibilidade
Permite controlar o acesso aos membros de uma classe; Fundamental para o encapsulamento; Evitar acessos indevidos a membros por outras classes ; Tipos de visibilidade: Membros pblicos: Acessveis em qualquer lugar do programa. Membros privados: Acessveis somente nos mtodos da prpria classe.
Conceitos
Polimorsmo
Visibilidade
Permite controlar o acesso aos membros de uma classe; Fundamental para o encapsulamento; Evitar acessos indevidos a membros por outras classes ; Tipos de visibilidade: Membros pblicos: Acessveis em qualquer lugar do programa. Membros privados: Acessveis somente nos mtodos da prpria classe. Membros protegidos: So acessveis por mtodos da classe ou de suas subclasses.
Conceitos
Polimorsmo
Construtores e Destrutores
Construtor: Mtodo responsvel por alocar recursos (principalmente memria) necessrios ao funcionamento do objeto e por inicializar os atributos do objeto.
2011/2
41 / 60
Conceitos
Polimorsmo
Construtores e Destrutores
Construtor: Mtodo responsvel por alocar recursos (principalmente memria) necessrios ao funcionamento do objeto e por inicializar os atributos do objeto. executado quando o objeto estiver sendo criado.
2011/2
41 / 60
Conceitos
Polimorsmo
Construtores e Destrutores
Construtor: Mtodo responsvel por alocar recursos (principalmente memria) necessrios ao funcionamento do objeto e por inicializar os atributos do objeto. executado quando o objeto estiver sendo criado. Destrutor: Mtodo responsvel por liberar memria (e outros recursos) alocada dinamicamente pela classe e para eliminar as possveis referncias classe, quando ela no mais existir.
2011/2
41 / 60
Conceitos
Polimorsmo
Construtores e Destrutores
Construtor: Mtodo responsvel por alocar recursos (principalmente memria) necessrios ao funcionamento do objeto e por inicializar os atributos do objeto. executado quando o objeto estiver sendo criado. Destrutor: Mtodo responsvel por liberar memria (e outros recursos) alocada dinamicamente pela classe e para eliminar as possveis referncias classe, quando ela no mais existir. Deve ser executado quando o objeto no for mais necessrio.
2011/2
41 / 60
Conceitos
UML
UML
Conceitos
UML
UML
Conceitos
UML
UML
Linguagem de Modelagem Unicada ; Linguagem visual para realizao de modelagem de sistemas; Especicao, documentao e estruturao de sistemas;
Conceitos
UML
UML
Linguagem de Modelagem Unicada ; Linguagem visual para realizao de modelagem de sistemas; Especicao, documentao e estruturao de sistemas; Diversos diagramas para representar diferentes vises do sistema: - Comportamental: Dinmica
Diagrama Diagrama Diagrama Diagrama Diagrama de de de de de Casos de Uso; Sequncia; Atividades; Estados; Colaborao.
- Estrutural: Esttica
Diagrama de Classes; Diagrama de Objetos; Diagrama de Componentes; Diagrama de Implantao.
Conceitos
UML
Usurio ou entidades externas. Funes que o sistema deve ser capaz de realizar. Use Case Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 43 / 60
Conceitos
UML
Descreve a funcionalidade do sistema; Composto por atores , casos de uso e o relacionamento entre eles.
Usurio ou entidades externas. Funes que o sistema deve ser capaz de realizar. Use Case Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 43 / 60
Conceitos
UML
Descreve a funcionalidade do sistema; Composto por atores , casos de uso e o relacionamento entre eles. Apresenta o que o sistema deve ser capaz de fazer, do ponto de vista dos atores.
Usurio ou entidades externas. Funes que o sistema deve ser capaz de realizar. Use Case Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 43 / 60
Conceitos
UML
Conceitos
UML
Diagrama de Classes
Class Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 45 / 60
Conceitos
UML
Diagrama de Classes
Class Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 45 / 60
Conceitos
UML
Diagrama de Classes
Representao da estrutura e relao entre as classes do programa; provavelmente a mais usada; Dene todas as classes e interfaces necessrias ao sistema;
Class Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 45 / 60
Conceitos
UML
Diagrama de Classes
Representao da estrutura e relao entre as classes do programa; provavelmente a mais usada; Dene todas as classes e interfaces necessrias ao sistema; Apresenta todos os relacionamentos que devem existir entre as classes.
Class Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 45 / 60
Conceitos
UML
Diagrama de Classes
Class Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 46 / 60
Conceitos
UML
Diagrama de Sequncia
Sequence Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 47 / 60
Conceitos
UML
Diagrama de Sequncia
Sequence Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 47 / 60
Conceitos
UML
Diagrama de Sequncia
Representa a sequncia de mensagens enviadas entre os objetos; Representam cenrios especcos; Descreve a colaborao dos objetos ao longo do tempo.
Sequence Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 47 / 60
Conceitos
UML
Diagrama de Sequncia
Sequence Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 48 / 60
Conceitos
UML
Diagrama de Objetos
Conceitos
UML
Diagrama de Objetos
uma variao do diagrama de classes ; Ao invs de apresentar as classes, apresenta os objetos intanciados;
Conceitos
UML
Diagrama de Objetos
uma variao do diagrama de classes ; Ao invs de apresentar as classes, apresenta os objetos intanciados; Apresenta o relacionamento entre os objetos em um cenrio especco;
Conceitos
UML
Diagrama de Objetos
uma variao do diagrama de classes ; Ao invs de apresentar as classes, apresenta os objetos intanciados; Apresenta o relacionamento entre os objetos em um cenrio especco; Exemplicam alguns cenrios para facilitar a compreenso do diagrama de classes.
Conceitos
UML
Diagrama de Objetos
Object Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 50 / 60
Conceitos
UML
Diagrama de Atividades
Conceitos
UML
Diagrama de Atividades
Representa os uxos conduzidos pela execuo do sistema; Mostra o workow detalhando as possveis decises a serem tomadas durante a execuo das tarefas;
Conceitos
UML
Diagrama de Atividades
Activity Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 52 / 60
Conceitos
UML
Diagrama de Componentes
Mostra a organizao entre arquivos de cdigo fonte, bibliotecas, tabelas de banco de dados, executveis, . . . ;
Component Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 53 / 60
Conceitos
UML
Diagrama de Componentes
Mostra a organizao entre arquivos de cdigo fonte, bibliotecas, tabelas de banco de dados, executveis, . . . ; Explicita as relaes, principalmente a dependncia entre os componentes;
Component Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 53 / 60
Conceitos
UML
Diagrama de Componentes
Mostra a organizao entre arquivos de cdigo fonte, bibliotecas, tabelas de banco de dados, executveis, . . . ; Explicita as relaes, principalmente a dependncia entre os componentes; Destaca a funo de cada mdulo para facilitar seu reuso.
Component Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 53 / 60
Conceitos
UML
Diagrama de Componentes
Component Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 54 / 60
Conceitos
UML
Diagrama de Estados
State Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 55 / 60
Conceitos
UML
Diagrama de Estados
Modelam os objetos como se fossem mquinas de estados nitos; Mostram diferentes estados do objeto durante seu tempo de vida e quais eventos fazem com que mude o seu estado.
State Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 55 / 60
Conceitos
UML
Diagrama de Estados
State Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 56 / 60
Conceitos
UML
Diagrama de Implantao
Conceitos
UML
Diagrama de Implantao
Modela a distribuio sica dos componentes de hardware e software do sistema; Apresenta como feita a comunicao entre os componentes;
Conceitos
UML
Diagrama de Implantao
Modela a distribuio sica dos componentes de hardware e software do sistema; Apresenta como feita a comunicao entre os componentes; Representa a congurao e a arquitetura do sistema.
Conceitos
UML
Diagrama de Implantao
Deployment Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 58 / 60
Conceitos
UML
Diagrama de Colaborao
Communication Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 59 / 60
Conceitos
UML
Diagrama de Colaborao
Mostra as interaes que ocorrem entre os objetos em uma situao especca; Semelhante ao diagrama de sequncia, porm com enfaze no relacionamento entre os objetos e sua topologia em destaque.
Communication Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 59 / 60
Conceitos
UML
Diagrama de Colaborao
Communication Diagram.
Alex Helder (IFB) LPOO - Orientao a Objetos 2011/2 60 / 60