definição classe objeto construtor de classes manipulando o objeto namespace utilização do...
TRANSCRIPT
![Page 1: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/2.jpg)
• 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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/9.jpg)
// 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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/12.jpg)
Exemplo
![Page 13: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/19.jpg)
Exemplo
![Page 20: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/21.jpg)
Exemplo
![Page 22: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/24.jpg)
Exemplo
![Page 25: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/27.jpg)
Exemplo
![Page 28: Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades](https://reader035.vdocuments.mx/reader035/viewer/2022062219/552fc15e497959413d8e5dbf/html5/thumbnails/28.jpg)
Autor: Andre Petris EsteveEdição e Revisão: Zhenlei Ji