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

Post on 01-Aug-2020

22 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6

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

Prof. Geovani Sajorato sajorato@gmail.com

Arquitetura Microsoft .NET

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.

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.

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.

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.

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.

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.

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.

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

Microsoft Visual C#

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

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

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>

Linguagem C#

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

Inteiro

Real

Caractere

Lógico

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

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;

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.

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"

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

Linguagem C#

• Instrução de Decisão

• Instrução if

• Instrução switch

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

{

}

Linguagem C#

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

• switch

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;

}

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

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

Linguagem C#

• Sintaxe de um método

• Sintaxe de um atributo

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

{

}

<Visibilidade> <Qualificador> <tipo> Nome_do_Atributo;

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);

}

Próxima aula...

• Aula laboratorial... • Laboratório 3

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

Para conhecer

+ 200 motivos

para virar FAM, acesse

Prof. Geovani Sajorato

sajorato@gmail.com

top related