28
Introdução à Progamação Orientada a Objeto (POO)

Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Embed Size (px)

Citation preview

Page 1: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Introdução à Progamação Orientada

a Objeto (POO)

Page 2: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

• Definição• Classe• Objeto• Construtor de Classes• Manipulando o objeto• Namespace• Utilização do namespace• Herança• Polimorfismo• Encapsulamento• Propriedades

Page 3: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Definição

”É um paradigma de programação baseado na composição e interação entre diversas unidades de software chamadas de objetos” - Wikipédia

Page 4: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Classe• É a representação de um conjunto de coisas que possuem similaridades. Exemplo: Conjunto de pessoas, conjunto de ações da bolsa de valores.• É o conjunto de atributos e métodos que podem compor um objeto. -> variáveis que contêm informações sobre o objeto. -> conjunto de operações que modificam os atributos.

- Atributos

- Métodos

Page 5: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo Vamos representar funcionários de uma empresa. Todos os exemplos a seguir são baseados na sintaxe de C#.

Page 6: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Construtor de Classes

• Construtor de uma classe é um método especial que retorna um ponteiro para uma variável do tipo da classe.• Normalmente utilizado para inicializar os atributos da classe.

Page 7: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Definição

public Funcionario(string nomeFun, int idadeFun, float salarioFun)

{// inicialização dos atributosnome = nomeFun;idade = idadeFun;salario = salarioFun;

}

Modificador de Acesso

Retorna ponteiro do tipo ”Funcionario”

Parâmetros Pedidos(opcional)

Page 8: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Objeto• É a instanciação de uma classe.• É um item do conjunto representado pela classe. Exemplo: O ”Zezinho” do conjunto de pessoas, a ação ”PETR50” do conjunto de ações da bolsa de valores.

Utilizando a classe Funcionario e seu construtor definidos anteriormente, podemos instanciar vários funcionários da empresa:

Page 9: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

// Declaração da variável tipo Funcionario//em alguma parte do programaFuncionario jo;

// Inicialização da variáveljo = new Funcionario(”João”, 80, 100f);

Semelhante ao malloc do C Chamada do

Construtor

Page 10: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Manipulando um ObjetoConsiderando o que foi anteriormente definido, poderíamos:

// Mudar o salário do Zéjo.MudaSalario(120f);// Quando o Zé fizer aniversário...jo.idade = jo.idade + 1;

O ponto é usado para acessar atributos e métodos do Objeto,

como as structs em C

Page 11: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Namespace

• É um conjunto de código.• Auxilia na organização do código.• Independe de pastas ou diretórios

Page 12: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo

Page 13: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Utilização do NamespacePara poder ter acesso ao código que está em um

namespace diferente do atual, pode-se acessá-lo da seguinte maneira:

Namespace acessado

Código dentro do Namespace System

Page 14: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Outra maneira utiliza a keyword using e em seguida o nome do namespace, antes da declaração do namespace atual:

Page 15: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Herança Tomemos dois conjuntos: o das ovelhas e o dos cavalos.• Ambos podem ser representados por classes: Cavalo e Ovelha.• Ambos os conjuntos possuem similaridades: quatro patas, pêlo, massa; ambos respiram, dormem, comem, etc... Isso se deve a ambos os conjuntos pertencerem ao conjunto dos mamíferos.

Page 16: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Poderíamos então criar uma classe chamada Mamífero.

numPatas, massa, etc...andar, comer, dormir, respirar...

Assim, Mamífero seria classe base de Ovelha e Cavalo. Tal como, eles são classes herdeiras (filhas, derivadas) de Mamífero, herdando seus atributos e métodos.

Atributos:Métodos:

Page 17: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo

Refere-se a variável da

Classe

Page 18: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo

Quando o construtor de Cavalo é chamado, ele, por suavez, chama

o Construtor da classe base (Mamífero)

Indica que Cavalo herda de Mamífero

Page 19: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo

Page 20: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Polimorfismo

• É a capacidade de gerenciar variados tipos de dados da mesma forma.

• Isto é feito a partir de um ponto em comum: classe base.

Page 21: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo

Page 22: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Encapsulamento Preceito - ”Separar o programa em partes, o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.” ( Wikipédia)

Exemplo 1: Um usuário de computador não precisa saber como a memória de vídeo é gerenciada para poder jogar Quake.

Exemplo 2: Você não precisa saber como o método ”Dormir” da classe ”Mamifero” funciona, para utilizá-lo.

Page 23: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Modificadore de AcessoServem para restringir ou permitir o acesso a classes,

métodos, atributos, propriedades, etc... Em C# existem 5 modificadores de acesso:

Public -

Protected Internal -

Internal -Protected -Private - Apenas membros do mesmo tipo.

Apenas para tipos derivados.

Apenas para código do mesmo assembly.

Protected + Internal

Qualquer código, sem restrição.

Page 24: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo

Page 25: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Propriedades• Servem para “mascarar” o acesso aos atributos da classe;

• Utilizadas junto com modificadores de acesso;

• Um dos pilares do Encapsulamento;

Page 26: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo

Indica que esta propriedade

perminte apenas pegar o valor do

atributo.

Indica que esta propriedade

perminte apenas atribuir o valor

do atributo.

Page 27: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Exemplo

Page 28: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades

Autor: Andre Petris EsteveEdição e Revisão: Zhenlei Ji