SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
César Augusto Pessôa
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
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.
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.
Programação estruturada
O que é um objeto
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
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
Quanto tipos de chave existem?
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.
Objetos do tipo Pessoa
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.
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.
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.
Paradigmas da POO
 Encapsulamento
 Métodos
Objeto
Pessoa
Pensar
Andar
Comer
Chorar
Dirigir
Dormir
Sorrir
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
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
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.
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.
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.
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).
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”.
Classes abstratas
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
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.
Herança
 Se uma classe abstrata não pode ser
instanciada, então pra que raios ela serve?
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
{
...
}
Revisão de C# - Classe
public 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;
}
Revisão de C# - Encapsulamento
public string Nome
{
get{return _nome;}
set{_nome = value;}
}
public float Altura
{
get { return this._altura; }
set { this._altura = value; }
}
Revisão de C# - Encapsulamento
public 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; }
}
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
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.
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
Bibliografia
C# 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
Dúvidas?
César Augusto Pessôa
capfg@hotmail.com

Mais conteúdo relacionado

Mais procurados

Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Poo encapsulamento
Poo encapsulamentoPoo encapsulamento
Poo encapsulamentoSedu
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao PythonMarcio Palheta
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 
JAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOJAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOAndré Victor
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosFabio Moura Pereira
 

Mais procurados (20)

Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Poo encapsulamento
Poo encapsulamentoPoo encapsulamento
Poo encapsulamento
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
JAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTOJAVA - ENCAPSULAMENTO
JAVA - ENCAPSULAMENTO
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Classes abstratas e interfaces
Classes abstratas e interfacesClasses abstratas e interfaces
Classes abstratas e interfaces
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 

Destaque

Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 
Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)Waldyr Felix
 
[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UMLChristopher Cerqueira
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Leonardo Melo Santos
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoAlessandro Binhara
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu algLeandro Santos
 
5 Ads
5 Ads5 Ads
5 Adslcbj
 
3 C
3 C3 C
3 Clcbj
 
02 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.002 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.0César Augusto Pessôa
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgRegis Magalhães
 

Destaque (20)

Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)Introdução a C# 4.0 (Revisão)
Introdução a C# 4.0 (Revisão)
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
 
[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML
 
Aula 04
Aula 04Aula 04
Aula 04
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto Basico
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
 
3- POO
3- POO3- POO
3- POO
 
Aula poo x pe
Aula poo x peAula poo x pe
Aula poo x pe
 
Guerras cibernéticas
Guerras cibernéticasGuerras cibernéticas
Guerras cibernéticas
 
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de ClassesAnálise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
 
5 Ads
5 Ads5 Ads
5 Ads
 
Curso DNA Básico Thetahealing
Curso DNA Básico ThetahealingCurso DNA Básico Thetahealing
Curso DNA Básico Thetahealing
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
3 C
3 C3 C
3 C
 
Csharp.intro
Csharp.introCsharp.intro
Csharp.intro
 
02 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.002 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.0
 
Aula 02
Aula 02Aula 02
Aula 02
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
 

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

Oo presentation básica
Oo presentation básicaOo presentation básica
Oo presentation básicaLorena de Souza
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaWanderlei Silva do Carmo
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetosWesley R. Bezerra
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...odnanfer
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#biandamakengo08
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfpedrina4
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )PeslPinguim
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos finalemcp11
 

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

Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Poo (1)
Poo (1)Poo (1)
Poo (1)
 
03 poo
03 poo03 poo
03 poo
 
Java7
Java7Java7
Java7
 
Oo presentation básica
Oo presentation básicaOo presentation básica
Oo presentation básica
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetos
 
Naked Objects
Naked ObjectsNaked Objects
Naked Objects
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
 
Curso
CursoCurso
Curso
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )
 
Aula02
Aula02Aula02
Aula02
 
Aula 5 banco de dados
Aula 5   banco de dadosAula 5   banco de dados
Aula 5 banco de dados
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos final
 

Mais de César Augusto Pessôa

Apresentação completa do PITCH do NASA SpaceApps 2019
Apresentação completa do PITCH do NASA SpaceApps 2019Apresentação completa do PITCH do NASA SpaceApps 2019
Apresentação completa do PITCH do NASA SpaceApps 2019César Augusto Pessôa
 
Deck de ferramentas para Startups, como começar bem!
Deck de ferramentas para Startups, como começar bem!Deck de ferramentas para Startups, como começar bem!
Deck de ferramentas para Startups, como começar bem!César Augusto Pessôa
 
A importância do design nos negócios
A importância do design nos negóciosA importância do design nos negócios
A importância do design nos negóciosCésar Augusto Pessôa
 
Personas - a dinâmica de vestir os sapatos do cliente
Personas - a dinâmica de vestir os sapatos do clientePersonas - a dinâmica de vestir os sapatos do cliente
Personas - a dinâmica de vestir os sapatos do clienteCésar Augusto Pessôa
 
O ecossistema de Startups na região de Araçatuba
O ecossistema de Startups na região de AraçatubaO ecossistema de Startups na região de Araçatuba
O ecossistema de Startups na região de AraçatubaCésar Augusto Pessôa
 
User eXperience - como o seu cliente se relaciona com o seu produto
User eXperience - como o seu cliente se relaciona com o seu produtoUser eXperience - como o seu cliente se relaciona com o seu produto
User eXperience - como o seu cliente se relaciona com o seu produtoCésar Augusto Pessôa
 
Aula 4 - Manipulando e Resgatando Dados 2
Aula 4 - Manipulando e Resgatando Dados 2Aula 4 - Manipulando e Resgatando Dados 2
Aula 4 - Manipulando e Resgatando Dados 2César Augusto Pessôa
 
Aula 3 - Manipulando e Resgatando Dados
Aula 3 - Manipulando e Resgatando DadosAula 3 - Manipulando e Resgatando Dados
Aula 3 - Manipulando e Resgatando DadosCésar Augusto Pessôa
 

Mais de César Augusto Pessôa (20)

Home office seguro
Home office seguroHome office seguro
Home office seguro
 
Apresentação completa do PITCH do NASA SpaceApps 2019
Apresentação completa do PITCH do NASA SpaceApps 2019Apresentação completa do PITCH do NASA SpaceApps 2019
Apresentação completa do PITCH do NASA SpaceApps 2019
 
14 Princípios de Deming
14 Princípios de Deming14 Princípios de Deming
14 Princípios de Deming
 
Deck de ferramentas para Startups, como começar bem!
Deck de ferramentas para Startups, como começar bem!Deck de ferramentas para Startups, como começar bem!
Deck de ferramentas para Startups, como começar bem!
 
MVP - O que é e como criar o seu
MVP - O que é e como criar o seuMVP - O que é e como criar o seu
MVP - O que é e como criar o seu
 
A importância do design nos negócios
A importância do design nos negóciosA importância do design nos negócios
A importância do design nos negócios
 
Personas - a dinâmica de vestir os sapatos do cliente
Personas - a dinâmica de vestir os sapatos do clientePersonas - a dinâmica de vestir os sapatos do cliente
Personas - a dinâmica de vestir os sapatos do cliente
 
A rotina de um Scrum Master
A rotina de um Scrum MasterA rotina de um Scrum Master
A rotina de um Scrum Master
 
A vida de um Scrum Product Owner
A vida de um Scrum Product OwnerA vida de um Scrum Product Owner
A vida de um Scrum Product Owner
 
O ecossistema de Startups na região de Araçatuba
O ecossistema de Startups na região de AraçatubaO ecossistema de Startups na região de Araçatuba
O ecossistema de Startups na região de Araçatuba
 
Excelência e Qualidade - Parte 04
Excelência e Qualidade - Parte 04Excelência e Qualidade - Parte 04
Excelência e Qualidade - Parte 04
 
Excelência e Qualidade - Parte 03
Excelência e Qualidade - Parte 03Excelência e Qualidade - Parte 03
Excelência e Qualidade - Parte 03
 
Excelência e Qualidade - Parte 02
Excelência e Qualidade - Parte 02Excelência e Qualidade - Parte 02
Excelência e Qualidade - Parte 02
 
Excelência e qualidade - Parte 01
Excelência e qualidade - Parte 01Excelência e qualidade - Parte 01
Excelência e qualidade - Parte 01
 
User eXperience - como o seu cliente se relaciona com o seu produto
User eXperience - como o seu cliente se relaciona com o seu produtoUser eXperience - como o seu cliente se relaciona com o seu produto
User eXperience - como o seu cliente se relaciona com o seu produto
 
Seja ágil com o Scrum - parte 02
Seja ágil com o Scrum - parte 02Seja ágil com o Scrum - parte 02
Seja ágil com o Scrum - parte 02
 
Seja ágil com o Scrum - parte 01
Seja ágil com o Scrum - parte 01Seja ágil com o Scrum - parte 01
Seja ágil com o Scrum - parte 01
 
Principais Comandos Linux (UBUNTU) 2
Principais Comandos Linux (UBUNTU) 2Principais Comandos Linux (UBUNTU) 2
Principais Comandos Linux (UBUNTU) 2
 
Aula 4 - Manipulando e Resgatando Dados 2
Aula 4 - Manipulando e Resgatando Dados 2Aula 4 - Manipulando e Resgatando Dados 2
Aula 4 - Manipulando e Resgatando Dados 2
 
Aula 3 - Manipulando e Resgatando Dados
Aula 3 - Manipulando e Resgatando DadosAula 3 - Manipulando e Resgatando Dados
Aula 3 - Manipulando e Resgatando Dados
 

Último

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (8)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

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

  • 2. 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
  • 3. 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.
  • 4. 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.
  • 6. O que é um objeto
  • 7. 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
  • 8. 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
  • 9. Quanto tipos de chave existem?
  • 10. 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.
  • 11. Objetos do tipo Pessoa
  • 12. 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.
  • 13. 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.
  • 14. 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.
  • 15. Paradigmas da POO  Encapsulamento  Métodos Objeto Pessoa Pensar Andar Comer Chorar Dirigir Dormir Sorrir
  • 16. 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
  • 17. 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
  • 18. 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.
  • 19. 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.
  • 20. 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.
  • 21. 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).
  • 22. 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”.
  • 24. 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
  • 25. 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.
  • 26. Herança  Se uma classe abstrata não pode ser instanciada, então pra que raios ela serve?
  • 27. 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 { ... }
  • 28. Revisão de C# - Classe public 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; }
  • 29. Revisão de C# - Encapsulamento public string Nome { get{return _nome;} set{_nome = value;} } public float Altura { get { return this._altura; } set { this._altura = value; } }
  • 30. Revisão de C# - Encapsulamento public 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; } }
  • 31. 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
  • 32. 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.
  • 33.
  • 34. 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
  • 35. Bibliografia C# 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