28
Introdução à orientação a objetos João Tito Almeida Vianna 18/05/2013

Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

  • Upload
    lythu

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Introdução à orientação a

objetos

João Tito Almeida Vianna

18/05/2013

Page 2: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Roteiro – Aula 1

Introdução: • Programação estruturada x Orientação a objetos

Orientação a objetos

• Classe e objeto

• Encapsulamento

• Herança

• Polimorfismo

Exemplo prático: Fontes lineares

2

Page 3: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Introdução –

Programação Estruturada Estrutura lógica clara.

Fácil manutenção do código.

Três estruturas básicas.

Representação de qualquer algoritmo.

3

Page 4: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Introdução –

Programação Estruturada

Unidade básica: função.

◦ Função: sequência de comandos que, por ser executada muitas

vezes ao longo do programa, é separada do código principal

em um módulo, o qual é chamado de dentro do programa.

◦ O hábito de criar funções torna o código mais organizado

e otimiza o uso de memória pelo código

4

Page 5: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Introdução –

Orientação a Objetos

Novo paradigma de programação.

Busca por facilitar escrita de programas, tornar o processo intuitivo.

Introdução da ideia de classe e objeto.

Programa deve ser visto como conjunto de objetos capazes de interagir entre si.

5

Page 6: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Introdução –

Orientação a Objetos

Introdução da ideia de classe e objeto.

Classe:

◦ estrutura de dados que contém tanto campos de

dados (variáveis próprias) como seus próprios

métodos (funções).

Objeto:

◦ É uma instância de classe.

6

Page 7: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Introdução –

Orientação a Objetos

Para entendimento da diferença entre classe

e objeto, algo importante a esta altura, é

válida a seguinte analogia:

É como se a classe fosse o “tipo” de objeto.

Declaração de variáveis

Programação estruturada Orientação a objetos

[tipo de variável] [nome delas] [classe das variáveis] [nome]

int x; Conta contaCorrente;

7

Page 8: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Introdução –

Orientação a Objetos

Classe: define a estrutura.

Objeto: implementação.

8

Page 9: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Introdução –

Visão geral

Visão dos paradigmas apresentados:

Orientação a

objetos

Programação

Estruturada

Enfoque Objetos Ações

Unidade básica Classe Função

9

Page 10: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Classe

Outra forma de entender o que é uma classe,

parte de outra analogia com a programação

estruturada.

A estrutura (struct) em na programação

estruturada é a definição de um novo tipo de

variável, contendo um conjunto de variáveis.

10

Page 11: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Classe

Na linguagem C:

typedef struct aluno

{

char nome[50];

int numeroDeMatricula;

int dataDeNascimento[3];

char curso[30];

} aluno;

11

Page 12: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Classe

A classe pode ser vista como uma struct com um nível a mais de complexidade: além das variáveis, temos também funções associadas a ela. Além disso, toda classe tem um construtor associado a ela, responsável por inicializar o objeto quando ele é criado (declarado).

As variáveis são conhecidas como atributos, e as funções como métodos.

12

Page 13: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Classe

O construtor tem sempre obrigatoriamente o mesmo

nome da classe.

Programação Estruturada Orientação a objetos

Struct Classe

• Variáveis • Atributos

• Métodos

• Construtor

13

Page 14: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Classe Em java:

public class Aluno

{

private String nome;

private int numeroDeMatricula;

private int[] dataDeNascimento = new int[3];

private String curso;

public Aluno(String N, int Mat, int[] Nasc, String cur)

{

nome = N;

numeroDeMatricula = Mat;

dataDeNascimento = Nasc;

curso = cur;

}

. . .

Atributos

Construtor

de classe

14

Page 15: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Classe

public void setNumeroMatricula(int novo)

{

numeroDeMatricula = novo

}

public void setCurso(String cur)

{

curso = cur;

}

public String getNome()

{

return nome;

}

}

Métodos da

classe

15

Page 16: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Encapsulamento

Proteção dos atributos da classe, tornando-os

acessíveis somente através de suas próprias

funções.

16

Page 17: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Encapsulamento

Especificadores de acesso a membro:

◦ public: membro pode ser acessado de

qualquer parte do programa.

◦ private: membro só é acessível através dos

métodos da classe.

◦ protected: membro acessível à classe e às

suas subclasses.

17

Page 18: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Encapsulamento Em java:

public class Aluno

{

private String nome;

private int numeroDeMatricula;

private int[] dataDeNascimento = new int[3];

private String curso;

public Aluno(String N, int Mat, int[] Nasc, String cur)

{

nome = N;

numeroDeMatricula = Mat;

dataDeNascimento = Nasc;

curso = cur;

}

. . .

Atributos

privados

Construtor

de classe

public

(sempre)

18

Page 19: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Encapsulamento

public void setNumeroMatricula(int novo)

{

numeroDeMatricula = novo

}

public void setCurso(String cur)

{

curso = cur;

}

public String getNome()

{

return nome;

}

}

Métodos da

classe

public

19

Page 20: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Encapsulamento

“Procedimento padrão”:

◦ Atributos todos private.

◦ Criação da função “getAtributo()” tipo public,

a qual devolve o valor do atributo.

◦ Criação da função “setAtributo(input)” do

tipo public, a qual altera o valor do atributo.

20

Page 21: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Encapsulamento public class Aluno

{

private String nome;

private int numeroDeMatricula;

private int[] dataDeNascimento = new int[3];

private String curso;

public void setCurso(String cur)

{

curso = cur;

}

public String getNome()

{

return nome;

}

Atributos

Métodos

21

Page 22: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Herança

Herança: Definição de uma classe como extensão da

outra.

o Melhor aproveitamento do código.

o Evita duplicação.

o Facilita manutenção.

• A subclasse herda todos os métodos e atributos da

superclasse e pode definir seus próprios.

22

Page 23: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Herança Classe base

ou

Superclasse

Subclasse

23

Page 24: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Herança

Na subclasse pode-se inclusive, redefinir

uma função de sua superclasse,

redefinindo-a da forma adequada. Esse

fenômeno é denominado polimorfismo.

A criação de subclasses pode envolver a

criação de uma superclasse abstrata.

24

Page 25: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Orientação a Objetos –

Herança

Classe abstrata:

◦ Representa um conceito abstrato.

◦ Não possui instâncias (objetos).

◦ Define modelo, que é compartilhado por um

conjunto de subclasses.

◦ Cada uma das subclasses completa a

funcionalidade da classe abstrata adicionando

comportamento específico.

25

Page 26: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Exemplo prático: Fontes lineares

Fonte de tensão linear: topologia dividida

em quatro partes:

26

Page 27: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Exemplo prático: Fontes lineares

27

Page 28: Introdução à orientação a objetos - ufjf.br§ãoAula1.pdf · Introdução – Programação Estruturada Unidade básica: função. Função: sequência de comandos que, por ser

Referências

[1] Reis, G. R., Material do minicurso: "C++ e Programação Orientada a Objetos", ministrado na XXXIII Semana da Engenharia, 2010.

[2] Bohm, Corrado; and Giuseppe Jacopini (May 1966). "Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules". Communications of the ACM 9 (5): 366–371.

[3] Dijkstra, E. "Go-to statement considered harmful", em Commun. ACM 11 (1968), 3: 147–148. (http://www.cs.utexas.edu/~EWD/ewd02xx/EWD215.PDF)

28