Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Curso de Orientação a Objeto em C#, Notas de aula de Análise de Sistemas de Engenharia

Curso muito bom que fiz no Centro de Inovação da PUCRS onde aprendi os conceitos de orientação a objetos na linguagem C#

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 08/03/2010

ricardo-magreza-8
ricardo-magreza-8 🇧🇷

1 documento

1 / 160

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Programação
Orientada a Objetos
com C# Básico
Tiago Moreira Totti
Tech Leader MIC PUCRS
Fabio Isquierdo
Developer MIC PUCRS
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Curso de Orientação a Objeto em C# e outras Notas de aula em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

Programação

Orientada a Objetos

com C# Básico

Tiago Moreira Totti

Tech Leader MIC PUCRS

Fabio Isquierdo

Developer MIC PUCRS

Conteúdo

Módulo 1: Visão Geral da Plataforma .NET

Módulo 2: Tipos de Dados

Módulo 3: Classes e Objetos

Módulo 4: Comandos e Operadores e coleções

Módulo 5: Herança, Polimorfismo e Classes Abstratas

Módulo 6: Aplicativos Console

Módulo 7: Aplicativos Windows Forms

C# - Uma nova linguagem

 Alternativa mais “limpa” ao C++  Desenvolvido em conjunto com o .NET por Anders Hejlsberg  Atraente a desenvolvedores de outras linguagens que não o VB (C/C++, Java, etc)

Por que uma nova linguagem?

O “equilíbrio” que era bom nos anos 70/ (C) e 80/90 (C++) não é bom hoje:  ponteiros/malloc/free: é um mecanismo muito frágil, especialmente para servidores de aplicativos  Não suportam componentes diretamente  Fragilidade em ter vários arquivos (.CPP, .H, .LIB)

Outras alternativas recentes apresentam sérios problemas, principalmente de performance

C# - Diferenças do C++

 Apenas “managed code”; não suporta Win  Ponteiros apenas em código unsafe  Tipos, biblioteca de runtime e demais características do .NET Framework  Não tem argumentos default, ou pré- processador (#include)  Ordem das declarações não é importante na maioria dos casos

C# - Além do C++

 Linguagem orientada a componentes  Tudo é visto como um objeto  Robusta

C# - Além do C++ : tudo é objeto

Problemas tradicionais:  C++, Java, Delphi: tipos primitivos são “mágicos” e não-OOP  Smalltalk, Lisp: tudo é objeto, mas custo de performance é grande

C# unifica os tipos sem custo de performance  Coleções funcionam com todos os tipos

struct e enum , além de inteiros, ponto flutuante e decimal são tipos-valor (baratos)

C# - Além do C++ : robustez

Coleta de lixo ( Garbage Collector )  Robustez e facilidade de uso

Exceptions : mecanismo único de tratamento de erros

Tipos seguros: o sistema de tipos jamais pode ser violado; todas as coerções são verificadas

Considerações de versão feitas desde o início (exemplo: atributos virtual , override , new )

C# - Estrutura do programa

Execução do programa começa no método Main()

A palavra-chave using referencia namespaces da Biblioteca de Classes do .NET Framework

Instruções são comandos que executam ações  Um programa é feito de muitas instruções  Instruções são separadas por ponto-e-vírgula  (^) Chaves são usadas para agrupar instruções using System; class AloMundo { static void Main() { Console.WriteLine (“Alo, Mundo!”); } }

Laboratório

 Seguir o roteiro de laboratório 1

Sistema de tipos

Tipos-valor  Contém os dados diretamente  Não podem ser “null”

Tipos-referência  Contém referências para objetos  Podem ser “null” int i = 123; string s = "CTXML"; i 123 s (^) "CTXML"

Sistema de tipos

Tipos-valor  (^) Primitivos int i;  (^) Enumerações enum State { Off, On }  (^) Estruturas struct Point { int x, y; }  Tipos-referência  (^) Classes class Foo: Bar, IFoo {...}  (^) Interfaces interface IFoo: IBar {...}  (^) Arrays string[] a = new string[10];  (^) Delegates delegate void Empty();

Sistema de tipos

sbyte -128 a +127 8-bit com sinal byte 0 a 255 8-bit sem sinal short -32.768 a +32.767 16-bit com sinal ushort 0 a 65535 16-bit sem sinal int -2.147.483.648 a +2.147.483. 32-bit com sinal uint 0 a 4.294.967.295 32-bit sem sinal long -9.223.372.036.854.775.808 a +9.223.372.036.854.775. 64-bit com sinal ulong 0 a 18.446.744.073.709.551. 64-bit sem sinal char U+0000 a U+ffff 16-bit Unicode float 1,5x10-45 a 3,4x10+38 32-bit ponto flutuante double 5,0x10-324 a 1,7x10+308 64-bit ponto flutuante bool true ou false decimal 1,0 × 10-28 a 7,9 × 10+28 128-bit ponto flutuante

Conversão de tipos

Implícita  (^) Executada pelo compilador em operações em que há garantia de que a informação não será truncada ou perdida

Explícita  Quando explicitamente é pedido ao compilador para converter uma informação que pode ser perdida int x = 123456; // 32 bits long y = x; // coerção implícita para 64 bits int x = 65537; // 32 bits byte z = (byte) x; // coerção explícita para 8 bits