programaÇÃo orientada a objetos · programaÇÃo orientada a objetos semana 6 introdução a...

31
PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato [email protected]

Upload: others

Post on 01-Aug-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6

Introdução a Programação Orientada a Objetos

Prof. Geovani Sajorato [email protected]

Page 2: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura Microsoft .NET

Page 3: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Abordagem .NET • Independência de linguagem de programação:

• O que permite a implementação do mecanismo de herança, controle de exceções e depuração entre linguagens de programação diferentes.

• Reutilização de código legado: • O que implica em reaproveitamento de código escrito usando outras tecnologias como

COM,COM+,ATL, DLLs e outras bibliotecas existentes.

• Tempo de execução compartilhado: • O “runtime” de .NET é compartilhado entre as diversas linguagens que a suportam, o

que quer dizer que não existe um runtime diferente para cada linguagem que implementa .NET.

• Sistemas auto-explicativos e controle de versões: • Cada peça de código .NET contém em si mesma a informação necessária e suficiente

de forma que o runtime não precise procurar no registro do Windows mais informações sobre o programa que está sendo executado. O runtime encontra essas informações no próprio sistema em questão e sabe qual a versão a ser executada, sem acusar aqueles velhos conflitos de incompatibilidade ao registrar DLLs no Windows.

• Simplicidade • na resolução de problemas complexos.

Page 4: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura .NET

• CLR (Commom Language Runtime) • Tempo de execução compartilhado

• Similar a uma “Máquina Virtual”, ou seja, O Win32, ao identificar uma aplicação .NET, dispara o runtime .NET que, a partir desse momento, assume o controle da aplicação como:

• Gerenciamento da Memória

• Execução dos Programas

• não temos um runtime para VB.NET, outro para C# etc. É o mesmo para todo mundo.

Page 5: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura .NET

• CTS (Common Type System) • O CTS, ou Sistema Comum de Tipos, que também faz parte do CLR.

• define os tipos suportados por .NET e as suas características.

• Cada linguagem que suporta .NET tem de, necessariamente, suportar esses tipos.

• Por exemplo: • Um tipo Enum deve derivar da classe System.Enum e todas as linguagens

devem implementar o tipo Enum dessa forma.

• Na .NET, e em C# conseqüentemente, todos os tipos derivam de uma raiz comum:

• a classe Object, o que equivale a dizer que todos os tipos são objetos, por definição.

Page 6: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura .NET

• CLS (Common Language Specification) • O CLS, ou Especificação Comum da Linguagem,

• É um subconjunto do CTS,

• Define um conjunto de regras que qualquer linguagem que implemente a .NET deve seguir a fim de que o código seja gerado

• Resultante da compilação de qualquer peça de software escrita na referida linguagem seja perfeitamente entendido pelo runtime .NET.

Page 7: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura .NET

• BCL (Base Classe Library) • O BCL, ou biblioteca de classes básica tem como características:

• Oferecer ao desenvolvedor uma biblioteca consistente de componentes de

software reutilizáveis que não apenas facilitem, mas também que acelerem o desenvolvimento de sistemas.

• Na BCL encontramos classes que contemplam desde um novo sistema de janelas a bibliotecas de entrada/saída, gráficos, sockets, gerenciamento da memória etc.

Page 8: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura .NET

• BCL • Alguns exemplos...

System Contém algumas classes de baixo nível usadas para

trabalhar com tipos primitivos, operações

matemáticas, gerenciamento de memória etc.

System.Collections Pensando em implementar suas próprias pilhas, filhas,

listas encadeadas? Elas já foram implementadas e se

encontram aqui.

System.Data,

System.Data.Commom,

System.Data.OleDb,

System.Data.SqlClient

Aqui você vai encontrar tudo o que é necessário para

lidar com bases de dados e, como é de se esperar,

você encontrará ADO.NET aqui.

System.Web ASP.NET, Web services e tudo o que tenha a ver com

Web pode ser encontrado aqui.

System.Windows.Forms Bibliotecas para o desenvolvimento de aplicações

Windows tradicionais.

Page 9: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura .NET

• Compilando programas .NET

• MSIL (Microsoft Intermediate Language)

• MSIL ou simplesmente IL

• A MSIL é a linguagem intermediária para qual é interpretado qualquer programa .NET na hora da compilação, independente da linguagem em que este for escrito.

Page 10: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura .NET

Linguagem de programação C#, VB.NET

Base Class Library (BCL)

Common Language Runtime (CLR)

Common Type System (CTS)

Common Language Specification (CLS)

MSIL (Microsoft Intermediate Language) ou IL

Código Compilado para a Plataforma .NET

Page 11: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com
Page 12: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Microsoft Visual C#

Page 13: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Variáveis • É permitido criar identificadores com letras (maiúscula e

minúscula), números e sublinhado

• Obrigatoriamente deve inicializar com uma letra

• Não pode ser nome composto

• OBS: C# é uma linguagem case-sensitive, ou seja, faz diferença entre maiúsculo e minúsculo

Page 14: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Palavras-chave

abstract event new struct

as explicit null switch

base extern object this

bool false operator throw

break finally out true

byte fixed override try

case float params typeof

catch for private uint

char foreach protected ulong

checked goto public unchecked

class if readonly unsafe

const implicit ref ushort

continue in return using

decimal int sbyte virtual

default interface sealed volatile

delegate internal short void

do is sizeof while

double lock stackalloc

else long static

enum namespace string

Page 15: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Variáveis • Em C#, todas as variáveis são declaradas dentro do escopo de

uma classe e podem ser dos seguintes tipos: • Locais

• são declaradas no escopo de um método, indexador ou evento e não possuem modificadores de acesso e tipo de atributo.

• Atributos de uma classe /campos da classe • A variável é declarada como membro de uma classe.

• Sintaxe • [Modificador de acesso] [tipo atributo] <tipo da variável> <identificador>

Page 16: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

Na Lógica computacional (algoritmos/pseudo-códigos) quais eram mesmo os 4 tipos primitivos de dados???

Inteiro

Real

Caractere

Lógico

Page 17: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

Logo... Na linguagem de programação Orientada a Objetos C# temos:

int Inteiro

decimal / double / float Real

string Caractere (Texto)

bool Lógico

Page 18: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Exemplo

public class App

{

public int varInt;

static void Main( )

{

int varLocal;

}

}

Atributos de uma Classe

Variáveis Locais

float valor = 10.3F;

long maior = 1000L;

double calculo;

Calculo = 12.87;

decimal Dinheiro = 10.4M;

Page 19: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Operadores • Aritméticos

• +(adição), - (subtração) • * (multiplicação), / (divisão) • % Retorna o resto de uma divisão • Exceção

• O operador “+” pode ser utilizado também para realizar uma concatenação de caracteres (String).

• Exemplo • Console.Write(“43” + “1”); Resultado é 431. • Console.WriteLine("5" + 5 + 10); Resultado é 5510. • Console.WriteLine("5" + (5 + 10) ); Resultado é 515.

Page 20: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Operadores • Precedência (), *, /, %, +, -

• Incremento e decremento

• ++, -- • Exemplo:

• X++; ou

• X = x + 1;

• X-- ou

• X = X – 1;

• Atributos Compostos

• += , -= , *=, /= • Exemplo

• Valor += 10 Semelhante a valor = valor + 10;

int x = 1;

Console.WriteLine(++x);//Escreve valor "2"

Console.WriteLine(++x);//Escreve valor "3"

Console.WriteLine(x++);//Escreve valor "3"

Console.WriteLine(x);//Escreve valor "4"

Page 21: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Operadores Lógicos ! Não Lógico

== Igual a...

!= Diferente de...

&& AND Lógico

|| OR Lógico

>, >= Maior, Maior Igual

<, <= Menor, Menor Igual

Page 22: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Instrução de Decisão

• Instrução if

• Instrução switch

Page 23: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

switch (Expressão de Controle)

{

case constante1:

comando....

break;

case constante2:

comando....

break;

default:

comando....

break;

}

if (Expressão Lógica)

{

}

if (Expressão Lógica)

{

}

else

{

}

if (Expressão Lógica)

{

}

else if (expressão Lógica)

{

}

else if (expressão Lógica)

{

}

else

{

}

Page 24: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Exemplos de instrução de decisão • if

• switch

Page 25: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

DateTime Data = DateTime.Now;

if (Data.Day == 0)

Console.WriteLine("Domingo");

else if (Data.Day == 1)

Console.WriteLine("Segunda");

else if (Data.Day == 2)

Console.WriteLine("Terça");

else

Console.WriteLine("Outro dia da Semana");

DateTime Data = DateTime.Now;

switch (Data.Day)

{

case 0:

Console.WriteLine("Domingo");

break;

case 1:

Console.WriteLine("Segunda");

break;

case 2:

Console.WriteLine("Terça");

break;

default:

Console.WriteLine("Outro dia da Semana");

break;

}

Page 26: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Entendendo Atributos

• Atributos são estrutura que devem ser utilizadas dentro de uma classe para armazenar algum tipo de dados

• Também podemos identificá-lo como uma estrutura que da as característica para uma classe.

• Um atributo diferente de uma variável local, tem o seu acesso visível, independente da sua visibilidade, por toda a classe que ela foi definida

Page 27: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Entendendo Métodos • Métodos são estruturas que realizam trechos de códigos para

resolver um problema, ou parte de um problema em uma classe.

• Um método dividem-se em: • Métodos sem retornos

• Semelhante a um procedimento

• Métodos com retornos • Semelhante a uma função

• Os métodos podem receber parâmetros de dois tipos: • Parâmetros por valor • Parâmetros por Referência

Page 28: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Sintaxe de um método

• Sintaxe de um atributo

<Visibilidade> <Qualificador> <Retorno> Nome_do_Metodo(<parametros>)

{

}

<Visibilidade> <Qualificador> <tipo> Nome_do_Atributo;

Page 29: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Linguagem C#

• Sintaxe

<Tipo de retorno> <nome do Metodo>([<parametro>]) {

// instruções

}

int calcula(int x)

{

return x * 10;

}

void calcula(int x, int y)

{

Console.Write(x * y);

}

Page 30: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Próxima aula...

• Aula laboratorial... • Laboratório 3

• Objetivo: Implementação prática da linguagem de programação orientada a objetos. Programando modelos.

Page 31: PROGRAMAÇÃO ORIENTADA A OBJETOS · PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6 Introdução a Programação Orientada a Objetos Prof. Geovani Sajorato sajorato@gmail.com

Para conhecer

+ 200 motivos

para virar FAM, acesse

Prof. Geovani Sajorato

[email protected]