Paulo Marques Hernâni Pedroso C# 2.0 Paulo Marques Hernâni Pedroso
C# 2.0
1 - Introdução
2 - Elementos Básicos
Lembre-se Existem comentários de linha (//) e de múltiplas linhas (/* ... */) As variáveis são declaradas escrevendo o tipo, seguido do nome da variável Podem-se iniciar as variáveis quando estas são declaradas As variáveis têm de ser iniciadas antes de serem utilizadas (referenciadas), sob pena de haver erro de compilação As variáveis podem ser declaradas em qualquer ponto do código O método Console.WriteLine() aceita um número variável de parâmetros, sendo cada parâmetro representado por {n} na cadeia de caracteres enviada a tela. n representa o número do parâmetro em questão (iniciado com 0)
Lembre-se Os tipos de dados numéricos mais utilizados são int, para valores inteiros, e double para valores reais
Lembre-se As variáveis lógicas são representadas pelo tipo bool Uma variável lógica só pode ter dois valores: true ou false Os caracteres são representados pelo tipo char os literais de caracteres são especificados usando aspas simples as seqüência de escape permitem representar caracteres especiais, começando sempre pelo caractere “\” As cadeias de caracteres (strings) são representadas pelo tipo string Os limites das cadeias de caracteres são especificados entre aspas As cadeias de caracteres são na verdade objetos, aos quais é possível aplicar diversos métodos e operadores, assim como examinar as suas propriedades
Lembre-se - Constantes As constantes são declaradas com a palavra-chave const as constantes tem de ser inicializadas quando são declaradas e nunca mudam de valor as constantes podem ser declaradsa em qualquer ponto do código
Lembre-se - Operadores
Lembre-se - Controle do fluxo de execução
Lembre-se - Vetores Para criar um vetor, utiliza-se a expressão: tipoDoVetor[] nomeDoVetor = new tipoDoVetor[tamanho]; Para acessar um elemento, basta indicar o seu índice entre colchetes: nomeDoVetor[elemento]
Exemplo double alturas[] = new double[10]; // Coloca o valor 1.77 na posição 3 do vetor alturas[3]=1.77;
Lembre-se - Matrizes Multidimensionais e matrizes dentro de matrizes
Parte I - A linguagem C#
3 - Conceitos de Orientação a Objetos
Linguagem estruturada x Linguagem OO linguagens estruturada Exemplos: C e Pascal Décadas de 70 e 80 linguagens OO Exemplos: C++, Java, Delphi e SmallTalk anos 90 ...
Linguagens Estruturada Modelo de programação simples programador pensa numa ou mais estruturas de dados que lhe modelem o problema e, sem seguida, desenvolve um conjunto de operações (funções) que atuam sobre essa estrutura de dados Programa = Estrutura de dados + Algoritmos
Modelo de Programação Estruturada Operação F() Operação G() Operação H() Operação I() Estrutura de dados Programa = Estrutura de dados + Algoritmos
Programação Orientada a Objetos Em POO, o programador pensa em termos de objetos que modelam o seu problema e nas relações entre eles Programas = Objetos + Relações
Modelo da programação orientada a objetos Objeto B Objeto A Dados Operação H() Operação I() Dados Operação F() Operação G() Dados Operação J() Programa = Objetos + Relações Objeto C
Conceitos Básicos encapsulamento de informação composição/herança polimorfismo
Encapsulamento da Informação Refere-se ao fato de as estruturas de dados serem entidades privadas de cada classe, devendo ser apenas acessadas por elementos da própria classe
Classes Uma classe representa um tipo abstrato de dados (TAD) - famílias de entidades Uma classe representa uma família de objetos enquanto um objeto representa uma instância da dessa família en.ti.da.de sf (lat med entitate) 1 Existência independente, separada, ou autônoma; realidade. 2 Aquilo que constitui a natureza fundamental ou a essência de uma coisa. 3 Aquilo que existe ou imaginamos que existe; ente, ser. 4 Individualidade. 5 Indivíduo de importância. 6 Dir Associação ou sociedade de pessoas ou de bens; pessoa jurídica de direito privado ou público: Entidade autárquica, entidade pública etc.
Exemplo Empregado é uma classe, enquanto a entidade que representa “José Antônio” é um objeto da classe Empregado
Composição e Herança Cada classe tem uma determinada responsabilidade e representa uma entidade completa concreta do mundo real Cada classe terá seus dados e métodos Composição e herança são tipos de relações que podem existir entre objetos (e classes)
Relação de Composição tem um, contém (has-a)
Relação de Herança é um (is-a)
Polimorfismo Capacidade de diferentes objetos se comportarem de forma diferente quando o mesmo método é invocado neles
Conceitos básicos de OO Diferentes instâncias de uma classe tem variáveis diferentes. As instancias são criadas com o operador new Ao criar um novo objeto, o construtor da classe é chamado. O construtor tem o mesmo nome que a classe e não tem valor de retorno Se um elemento da classe é declarado private, então é visível apenas para os elementos dessa classe Se um elemento da classe é declarado public, então é visível para o exterior da classe
Conceitos básicos de OO Os dados da classe devem, em regra geral, ser privado. Apenas o menor número possível de métodos da classe deve ser público Uma relação de composição surge quando uma classe tem de conter um objeto de uma outra classe (exemplo: “automóvel contém motor”) Uma relação de herança surge quando um objeto também é uma instância de uma outra classe mais geral (“automóvel é um veículo”)
Conceitos básicos de OO Uma relação de herança indica-se por: ClasseDerivada : ClasseBase { ... } É sempre possível utilizar um referência de uma classe mais acima na hierarquia de derivação para um objeto de uma classe derivada dessa Para existir polimorfismo, os métodos na classe-base têm de ser declarados virtual e nas classes derivadas têm de ser declarados override
4 - Programação Orientada a Objetos
5 - Exceções
6 - Programação Baseada em Componentes Um componente é uma unidade reutilizável de software, tipicamente com fronteiras bem definidas, sendo encapsulado em um invólucro binário Do ponto de vista de programação, um componente corresponde a uma classe
Elementos que suportam a utilização e interligação a outros componentes: Propriedades Métodos Eventos
Propriedades Funcionam como variáveis públicas Uma propriedade se declara como se fosse um campo normal, mas adicionado de um corpo. Nesse corpo, existem pelo menos um dos seguintes métodos: get e set. O get é invocado quando se está obtendo o valor da propriedade; o set é invocado quando se está modificando o valor da propriedade. O método set possui uma variável implícita (value) que contém o novo valor da propriedade
Propriedades A estrutura de uma propriedade é: public TipoDaPropriedade NomeDaPropriedade { get { // obtém o valor da propriedade } set { // modifica o valor da propriedade } }
Propriedades Uma propriedade não é necessariamente pública. Pode ter qualquer nível de acesso. Uma propriedade também pode ser estática, virtual ou abstrata, como se tratasse de um método.
Eventos O sistema de eventos é baseado em dois conceitos básicos: produtores de eventos e consumidores de eventos
Delegates
Atributos São mecanismos que permitem realizar a “programação declarativa”
Elementos aos quais se podem aplicar atributos Especificador Descrição assembly module type method property event field param return
7 - Tópicos Avançados
Parte II - .NET Essencial
8 - Classe Base
9 - Execução Concorrente
10 - Acesso a Internet
11 - Explorações Futuras