34
Linguagem de Programação II / Java – Orientação a Objetos Prof. Alessandro Borges Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos

Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

  • Upload
    phamthu

  • View
    226

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Prof. Alessandro Borges

Linguagem de Programação IIProgramação Orientada a Objetos

Orientação a Objetos

Page 2: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Tópicos

Introdução à Programação Orientada a Objetos

Conceitos

Objetivos

Classes e Objetos

Atributos

Métodos

Abstração

2

Page 3: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à

Programação Orientada a Objetos3

Page 4: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

O que é Programação Orientada a Objetos?

Organiza os problemas e suas soluções como um conjunto de

objetos distintos que interagem entre si e combinam estruturas de

dados e comportamentos (ações)

Considerando a concepção da modelagem de sistemas:

Um objeto é qualquer coisa existente no mundo real, em formato

concreto ou abstrato;

Pode existir fisicamente ou apenas conceitualmente.

Apresenta foco nos dados (objetos) do sistemas, e não nas funções (processos)

4

Page 5: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Objetivos da P.O.O.

Produtividade;

Agilidade no desenvolvimento;

Controle da complexidade;

Manutenibilidade;

Reutilização de código;

Redução de custos (desenvolvimento e manutenção de

sistemas);

Confiabilidade do software

5

Page 6: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Principais conceitos da P.O.O.

Classe;

Objeto;

Atributos;

Métodos;

Abstração;

Encapsulamento;

Herança;

Polimorfismo.

6

Page 7: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

A P.O.O. é feita através de Classes e Objetos

O que é uma Classe?

Descreve um modelo do mundo real, onde são representados propriedades, comportamentos e relacionamentos.

É como um molde para os objetos.

Na manufatura convencional, define a descrição de um dispositivo, sobre a qual muitos dispositivos físicos são construídos

Em software, é a descrição de um objeto

É a unidade básica da linguagem Java, e de outras linguagens O.O.

Descreve

As características (dados, atributos) incluídos no objeto.

Os comportamentos (ações, funções, métodos) de cada objeto.

7

Page 8: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Classe

Define características que se aplicam a vários objetos

É um agrupamento de objetos com a mesma estrutura de dados

(atributos) e comportamentos (operações ou métodos)

Cada objeto é dito ser uma instância da classe

Precisamos criar uma instância (objeto) a partir do molde (classe)

para utilizá-lo.

8

Page 9: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

O que é um objeto?

Qualquer coisa real ou abstrata;

É uma instância (materialização) da

classe

Armazena dados e executa

operações manipulando-os;

Reflete as capacidades do sistema

de manter informações sobre ele, ou

interagir com ele;

É a abstração de alguma coisa no

domínio do problema

9

Page 10: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Relação entre classe e objeto

10

Classe

Objeto

Page 11: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Relação entre classe e objeto

Para podermos usar (comer) um

objeto (bolo), primeiro

precisamos instanciá-lo a partir

de uma classe (receita)

A partir de uma mesma classe

(receita) podemos criar vários

objetos (bolos)

11

Page 12: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Vejamos mais alguns

objetos

Para entender os conceitos

de Orientação a Objetos,

responda:

Que características similares

você identifica nesses carros?

12

Page 13: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Exemplos de objetos de uma classe “Pessoa”.

13

Page 14: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Objetos e Classes

Agrupamos objetos semelhantes em classes

Pessoa

Carro

14

Page 15: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Objetos e Classes

Agrupamos objetos semelhantes em classes

15

Page 16: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Quantas classes temos aqui?

16

Page 17: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

O corpo da classe apresenta:

Atributos

Variáveis especiais que expressam o estado ou característica de um objeto

Métodos

Ações/funções que os objetos podem executar

Construtores

Método usado na criação do objeto

17

Page 18: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Atributos

Conjunto de propriedades (características) de uma classe

Indica as possíveis informações da classe, representando o estado de

cada objeto

Representa os dados que cada objeto da classe irá guardar

O valor do atributo é específico em cada objeto

18

Page 19: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Atributos

Também chamados de campos ou variáveis de instância

(variáveis globais).

Para cada atributo é definido um nome e um tipo de dado.

Normalmente declarados como private, ficando acessíveis

apenas internamente à classe (encapsulamento).

19

Page 20: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Métodos

Conjunto de operações (procedimentos e funcionalidades) que

definem o comportamento de uma classe

São as ações/funções que os objetos podem executar

Cada método possui uma assinatura específica, composta por:

Um nome (identificador do método);

Um tipo (tipo do valor de retorno – ou ‘void’ se não tem retorno);

Uma lista de parâmetros (entrada de argumentos);

Modificadores (visibilidade do método).

20

Page 21: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Métodos

Declarados como public, se a intenção é que sejam acessíveis externamente à classe;

Declarados como private, se a intenção é que sejam acessíveis apenas internamente à classe.

Métodos diferentes podem ter o mesmo nome, desde que tenham número ou tipo(s) de parâmetros diferentes (polimorfismo)

21

Page 22: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Construtores

Métodos que são sempre chamados quando se instancia um novo objeto.

Responsável pela alocação de recursos necessários ao funcionamento do objeto

Têm o mesmo nome da classe.

Não possui tipo de retorno (nem mesmo void).

Pode possuir quantos parâmetros forem necessários.

22

Page 23: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Construtores

Toda classe tem construtor.

Se nenhum for declarado, um construtor padrão (default) vazio é

criado implicitamente.

Uma classe pode possuir vários construtores.

Pode fazer a inicialização dos atributos e qualquer outra

operação necessária ao objeto.

23

Page 24: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

O método main.

É um método estático especial, usado como ponto de partida de

um programa Java.

Pode-se declarar método main em qualquer classe.

24

Page 25: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Abstração

Um dos conceitos importantes na orientação a objetos.

É a capacidade de trazer a realidade para o meio

computacional através de um modelo que a represente.

Automovel

modelopreco...

andar()

frear()

...

25

Page 26: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Representação gráfica dos atributos e métodos de uma

classe

Pessoa

nome: String

idade: int

AlteraNome(novoNome: String): voidAlteraIdade(novaIdade: int): void

PegaNome(): StringAumentaIdade(aumento int): int

Nome da

Classe

Lista de

Atributos

Lista de

Métodos

26

Page 27: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Exemplo de uma classe em Javapublic class Pessoa(){

String nome;

int idade;

void AlteraNome(String novoNome){

nome = novoNome;

}

String PegaNome(){

return nome;

}

int AumentaIdade(int aumento){

int novaIdade = idade + aumento;

return novaIdade;

}

}

27

Page 28: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Exemplo de uma classe em Javapublic class Pessoa(){

String nome;

int idade;

void AlteraNome(String novoNome){

nome = novoNome;

}

String PegaNome(){

return nome;

}

int AumentaIdade(int aumento){

int novaIdade = idade + aumento;

return novaIdade;

}

}

Lista de Atributos

Lista de Métodos

(Métodos implementados)

Assinatura da Classe

28

Page 29: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Exemplo prático.

Descrever a classe, os atributos e os métodos de um sistema de

estacionamento.

Pessoa

nome: String

idade: int

Andar(): void

AlteraNome(novoNome: String): void

AlteraIdade(novaIdade: int): void

PegaNome(): String

PegaIdade(): int

AumentaIdade(aumento int): int

Veiculo

modelo: String

ano: int

preco: double

AlteraModelo(novoModelo: String): void

AlteraAno(novoAno: int): void

AlteraPreco(novoPreco: double): void

PegaModelo(): String

PegaAno(): int

PegaPreco(): double

DiminuiPreco(porc double): double

29

Page 30: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Introdução à P.O.O.

Além da abstração, essencial para a programação O.O.,

em Java as classes suportam mais três características

chave da P.O.O.

Encapsulamento;

Parte do código fica oculta a ambientes externos à classe

Herança;

Subclasses herdam características das classe pais.

Polimorfismo.

Métodos diferentes com o mesmo nome, usados conforme a

realização da chamada.

30

Page 31: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Resumo31

Page 32: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Resumo

Classe – O modelo de código fonte para um objeto em

tempo de Execução.

Objeto – Instância de uma classe.

Atributo – Um elemento de dados de um objeto.

Também conhecido como : membro de dados, variável de

instância, campo de dados.

Método – Elemento comportamental de um objeto

Também conhecido como: algoritmo, função, procedimento.

32

Page 33: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Resumo

Construtor – Construção parecida com método

utilizada para iniciar novos objetos.

Invocado pela palavra reservada new.

Pacote – Agrupamento de classes e/ou subpacotes

para organização de projetos.

Tipos primitivos – são tipos básicos de Java que não são

tratados como objetos.

33

Page 34: Linguagem de Programação II · Linguagem de Programação II / Java –Orientação a Objetos Introdução à P.O.O. O que é Programação Orientada a Objetos? Organiza os problemas

Linguagem de Programação II / Java – Orientação a Objetos

Prof. Alessandro Borges

Linguagem de Programação IIProgramação Orientada a Objetos

Orientação a Objetos