02 - Orientação a objetos e revisão de C# v1.5

37
César Augusto Pessôa

Transcript of 02 - Orientação a objetos e revisão de C# v1.5

Page 1: 02 - Orientação a objetos e revisão de C# v1.5

César Augusto Pessôa

Page 2: 02 - Orientação a objetos e revisão de C# v1.5

Sumário

Objetivos

Programação estruturada

Programação orientada a objetos

Paradigmas da orientação a objetos

Revisão C#

Exercícios práticos no Visual Studio

Page 3: 02 - Orientação a objetos e revisão de C# v1.5

Objetivos

Ao final da aula, os alunos saberão

identificar as principais diferenças

entre a programação estruturada e a

programação orientada a objetos.

Apresentar aos alunos uma pequena

revisão de C# e a IDE Visual Studio.

Page 4: 02 - Orientação a objetos e revisão de C# v1.5

Programação estruturada

Forma de programação onde todos os programas são desenvolvidos sob três estruturas: sequência, decisão e iteração (ou repetição).

Orientada a criação de estruturas simples nos programas, usando as sub-rotinas e as funções. Foi a forma dominante na criação de software anterior à programação orientada por objetos.

Page 5: 02 - Orientação a objetos e revisão de C# v1.5

Programação estruturada

Page 6: 02 - Orientação a objetos e revisão de C# v1.5

O que é um objeto

Page 7: 02 - Orientação a objetos e revisão de C# v1.5

Programação orientada a objetos

A primeira coisa que devemos ter em

mente é que, tudo em nosso cotidiano

é um objeto!

E... Cada objeto está inserido em um

contexto, também chamado de

domínio.

Objeto

Domínio

Page 8: 02 - Orientação a objetos e revisão de C# v1.5

Programação orientada a objetos

Considerando a chave abaixo como

um objeto, podemos ressaltar

algumas características:

Cor

Tamanho

Material

Fabricante

Tipo

Etc.

Objeto Chave

Page 9: 02 - Orientação a objetos e revisão de C# v1.5

Quanto tipos de chave existem?

Page 10: 02 - Orientação a objetos e revisão de C# v1.5

Objeto Pessoa

Podemos dizer que uma pessoa é um objeto porque toda a pessoa possui características muito parecidas, porém, cada pessoa é única!

Cor do cabelo

Tipo do cabelo

Cor dos olhos

Formato dos olhos

Dimensão do sorriso

Etc.

Page 11: 02 - Orientação a objetos e revisão de C# v1.5

Objetos do tipo Pessoa

Page 12: 02 - Orientação a objetos e revisão de C# v1.5

Classes Os objetos de nosso mundo, nosso domínio,

serão identificados dentro de nossos

programas como classes.

As classes, como representantes dos

objetos, também possuem um

comportamento e características.

As características de um objeto serão chamadas

atributos ou propriedades.

O comportamento de um objeto será definido por

meio de métodos.

Page 13: 02 - Orientação a objetos e revisão de C# v1.5

Paradigmas da POO Herança

Ocorre quando um objeto possui características e

ações oriundas de outro objeto superior. Por

exemplo, quando um filho herda os olhos e

temperamento do pai.

Page 14: 02 - Orientação a objetos e revisão de C# v1.5

Paradigmas da POO Encapsulamento

São informações presentes em um objeto e que

estão ocultas para o mundo exterior, somente

sendo possível acessá-las por meio de

interações permitidas pelo objeto. Por exemplo,

quando abrimos uma janela e as pessoas

conseguem enxergar o que estamos fazendo

dentro de nossa casa.

Page 15: 02 - Orientação a objetos e revisão de C# v1.5

Paradigmas da POO Encapsulamento

Métodos

Objeto

PessoaPensar

Andar

Comer

Chorar

Dirigir

Dormir

Sorrir

Page 16: 02 - Orientação a objetos e revisão de C# v1.5

Paradigmas da POO Encapsulamento

Atributos ou

Propriedades

Nome

Endereço

Telefone

Idade

Gênero

Profissão

Ler

Telefone

Ler

Endereço

Ler

Idade

Ler

Nome

Ler

Profissão

Ler

Gênero

Page 17: 02 - Orientação a objetos e revisão de C# v1.5

Paradigmas da POO Encapsulamento

Não sabemos exatamente como as coisas acontecem, mas podemos nos relacionar com os objetos para descobrir e obter mais informações conforme o necessário.

E esta é exatamente a maior vantagem do encapsulamento! Eu não preciso conhecer as regras específicas de cada objeto, apenas preciso saber como me relacionar com ele.

“A ignorância é uma espécie de bênção. Se você não sabe, não existe dor.” – John Lennon

Page 18: 02 - Orientação a objetos e revisão de C# v1.5

Paradigmas da POO Abstração

Ocorre quando são definidas características

comuns a um grupo de objetos, sendo possível

encontrar as mesmas características em objetos

diferentes. Por exemplo, objetos cortantes.

Page 19: 02 - Orientação a objetos e revisão de C# v1.5

Paradigmas da POO Polimorfismo

Literalmente significa “muitas formas”. Ocorre

quando uma mesma ação pode ser executada

por diversos objetos diferentes e de formas

diferentes. Por exemplo, podemos dizer que um

pássaro voa, assim como um avião também voa.

Entretanto, ambos são objetos diferentes que

voam de forma diferente.

Page 20: 02 - Orientação a objetos e revisão de C# v1.5

Interfaces Uma interface serve para identificar um

comportamento obrigatório de uma classe.

Por exemplo, no caso do pássaro e do

avião, ambos devem possuir o método voar,

porém, realizados de forma diferente.

Podemos então utilizar a interface IVoador.

Page 21: 02 - Orientação a objetos e revisão de C# v1.5

Interfaces Podemos então declarar um conjunto de

comportamentos que nossos objetos avião e

pássaro tem em comum.

O próximo passo, é construir uma interface

que absorva estes comportamentos

(métodos), e possa ser utilizada por ambos

os objetos (classes).

Page 22: 02 - Orientação a objetos e revisão de C# v1.5

Classes abstratas Recebem este nome devido ao seu alto nível

de abstração, ou seja, a grande distância entre sua implementação e o objeto real.

Por exemplo, podemos ter uma classe abstrata denominada ser vivo.

Com certeza esta classe possui atributos e métodos que podemos utilizar para pessoas, cachorros, pássaros, gatos, etc.

Porém seria muito difícil utilizarmos um objeto tão abrangente. Para cadastrar uma pessoa, por exemplo, precisaríamos de informações muito específicas, além do básico “ser vivo”.

Page 23: 02 - Orientação a objetos e revisão de C# v1.5

Classes abstratas

Page 24: 02 - Orientação a objetos e revisão de C# v1.5

Herança Mantendo o nosso exemplo do objeto ser

vivo e se considerarmos ele como abaixo:

Atributos:

Altura

Peso

Idade

Métodos

Respirar

Comer

Descansar

Page 25: 02 - Orientação a objetos e revisão de C# v1.5

Herança Uma classe pessoa, poderia herdar

características da classe ser vivo.

Da mesma forma se criássemos as classes

cachorro, gato, rato e peixe. Todas poderiam

herdar as características e comportamentos

da classe ser vivo, evitando assim que cada

classe tenha que repetir seus atributos e

métodos.

Page 26: 02 - Orientação a objetos e revisão de C# v1.5

Herança Se uma classe abstrata não pode ser

instanciada, então pra que raios ela serve?

Page 27: 02 - Orientação a objetos e revisão de C# v1.5

Revisão de C# - Sintaxe// Bibliotecas utilizadas

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

// Namespace do projeto

namespace CadastroDePessoas

{

// Classe

public class Pessoa

{

...

}

Page 28: 02 - Orientação a objetos e revisão de C# v1.5

Revisão de C# - Classepublic class Pessoa

{

private string _nome;

private float _altura, _peso;

private int _idade;

private DateTime _dataNasc;

private int _genero;

// Construtor sem parâmetros

public Pessoa()

{

}

// Construtor com parâmetros

public Pessoa(string nome, float altura, float peso, int idade, DateTime dataNasc, int genero)

{

this._nome = nome;

this._altura = altura;

this._peso = peso;

this._idade = idade;

this._dataNasc = dataNasc;

this._genero = genero;

}

Page 29: 02 - Orientação a objetos e revisão de C# v1.5

Revisão de C# - Encapsulamentopublic string Nome

{

get{return _nome;}

set{_nome = value;}

}

public float Altura

{

get { return this._altura; }

set { this._altura = value; }

}

Page 30: 02 - Orientação a objetos e revisão de C# v1.5

Revisão de C# - Encapsulamentopublic DateTime DataNasc

{

get { return this._dataNasc; }

set { this._dataNasc = value; }

}

public int Idade

{

get

{

this._idade = DateTime.Now.Year - this._dataNasc.Year;

return this._idade;

}

set { this._idade = value; }

}

Page 31: 02 - Orientação a objetos e revisão de C# v1.5

Revisão de C# - Tipos de dados

Tipo de dados Intervalo

byte 0 .. 255

sbyte -128 .. 127

short -32.768 .. 32.767

ushort 0 .. 65,535

int -2.147.483.648 .. 2.147.483.647

uint 0 .. 4.294.967.295

long -9.223.372.036.854.775.808 .. 9.223.372.036.854.775.807

Page 32: 02 - Orientação a objetos e revisão de C# v1.5

Revisão de C# - Tipos de dados

Tipo de dados Intervalo

ulong 0 .. 18.446.744.073.709.551.615

float -3,402823e38 3,402823e38

double -1,79769313486232e308 1,79769313486232e308

decimal -79228162514264337593543950335

.. 79228162514264337593543950335

char Um caractere Unicode.

string Uma seqüência de caracteres Unicode.

bool VERDADEIRO ou FALSO.

Page 33: 02 - Orientação a objetos e revisão de C# v1.5
Page 34: 02 - Orientação a objetos e revisão de C# v1.5

Bibliografia

Use a Cabeça C#

2ª Edição – 2010

Autores: Stellman, Andrew; Greene, Jennifer

Editora: Alta Books

Como Programar com Asp. Net e C#

Autor: Lotar, Alfredo

Editora: NOVATEC

Page 35: 02 - Orientação a objetos e revisão de C# v1.5

BibliografiaC# e .NET – Guia do desenvolvedor

Autor: Lima, Edwin

Editora: Editora Campus

Desenvolvimento web com ASP.NET MVC

Autores: Fabrício Sanchez, Márcio Fábio Althmann

Editora: Casa do código

Page 36: 02 - Orientação a objetos e revisão de C# v1.5

Dúvidas?

Page 37: 02 - Orientação a objetos e revisão de C# v1.5

César Augusto Pessôa

[email protected]