programaÇÃo orientada a objetos · programaÇÃo orientada a objetos semana 6 introdução a...
TRANSCRIPT
PROGRAMAÇÃO ORIENTADA A OBJETOS SEMANA 6
Introdução a Programação Orientada a Objetos
Prof. Geovani Sajorato [email protected]
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.