19
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Embed Size (px)

Citation preview

Page 1: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Programação Orientada a Objetos - Java

Professor: Jean Carlo Mendes

Page 2: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

POO - Java

• Programação Estrutura x POO• Estruturada: Modelagem baseada no

conceito de módulos ou sub-programas

• POO: Modelagem baseada nos conceitos de classes e seus relacionamentos

• Algumas linguagens OO• Smaltalk

• C++, C#, VB.NET

• Java

Page 3: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes
Page 4: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes
Page 5: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Conceitos Básicos de OO

• Algumas definições:

• Classe• É uma categoria de entidades

(“coisas”) . Corresponde a um tipo ou uma coleção ou um conjunto de entidades afins

• Permite que o programador encapsule os dados e as funções necessárias para manipular estes dados em um pacote único

• A classe define o “gabarito” à partir do qual os objetos serão criados.

Page 6: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Conceitos Básicos de OO

• Algumas definições:• Objeto• Uma entidade com existência física que

pertence a um determinado conjunto de entidades afins (classe)

• O processo de ser criar um objeto à partir de uma classe é conhecido como Instanciação

• Os dados de uma classe são chamados de Atributos

• As funções que operam sobre os Atributos de uma classe são conhecidas como Métodos

Page 7: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Conceitos Básicos de OO

• A palavra classe vem da taxonomia da biologia. Todos os seres vivos de uma mesma classe biológica têm uma série de atributos e comportamentos em comum, mas não são iguais, podem variar nos valores desses atributos e como realizam esses comportamentos.

Fonte: Site Caelum

Page 8: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Conceitos Básicos de OO

• Homo Sapiens define um grupo de seres que possuem características em comum, porém a definição (a ideia, o conceito) de um Homo Sapiens é um ser humano? Não. Tudo está especificado na classe Homo Sapiens, mas se quisermos mandar alguém correr, comer, pular, precisaremos de uma instância de Homo Sapiens, ou então de um objeto do tipo Homo Sapiens..Fonte: Site

Caelum

Page 9: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Conceitos Básicos de OO

• Um outro exemplo: uma receita de bolo. A pergunta é certeira: você come uma receita de bolo? Não. Precisamos instanciá-la, criar um objeto bolo a partir dessa especificação (a classe) para utilizá-la. Podemos criar centenas de bolos a partir dessa classe (a receita, no caso), eles podem ser bem semelhantes, alguns até idênticos, mas são objetos diferentes. Fonte: Site

Caelum

Page 10: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Representação - UML

• Um dos padrões mais conhecidos e usados de representação de classes em um projeto Orientado a Objetos é conhecido como UML (Unified Modeling Language)

• Criada para facilitar a representação e a compreensão de projetos de sistemas baseados em OO.

Page 11: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Representação UML• Notação de Classe

Page 12: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

A Classe em Java...

Page 13: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

O menor programa java

Page 14: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Exercícios....

• Tentem representar (UML) as seguintes classes e seus atributos e métodos:• Pessoa

• Ator

• Diretor

• Usuário

• Produtora de filmes

• Filme

• País

Page 15: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Herança

• Uma classe pode ser derivada de uma outra classe, herdando seus atributos e métodos.

• A criação de subclasses, ou classes filhas (classes derivadas de uma superclasse, ou classe pai) permite o aumento incremental das funcionalidades dos nossos objetos. Em outras palavras, permite uma especialização do objeto.

Page 16: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Herança

• Se precisarmos que um objeto faça o mesmo que um outro objeto e ainda faça “algo a mais”, podemos aproveitar o código já construído e testado e acrescentar apenas o “algo a mais” que precisamos.

Page 17: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Herança

• A Herança entre as classes promove o reaproveitamento de código e ainda facilita a manutenção do sistema.

Page 18: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Herança• A Herança entre classes pode ser representada

usando a notação UML abaixo:

Page 19: Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes

Exercícios....

• Aplique o conceito de herança nas classes projetadas por você no exercício anterior (Crie os diagramas UML):• Pessoa

• Ator

• Diretor

• Usuário

• Produtora de filmes

• Filme

• País