480 likes | 555 Views
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
E N D
C# 2.0 Paulo Marques Hernâni Pedroso
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 - 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
linguagens estruturada Exemplos: C e Pascal Décadas de 70 e 80 linguagens OO Exemplos: C++, Java, Delphi e SmallTalk anos 90 ... Linguagem estruturada x Linguagem OO
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
Dados Dados Operação F() Operação H() Operação G() Operação I() Modelo da programação orientada a objetos Objeto B Objeto A 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
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
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
Atributos • São mecanismos que permitem realizar a “programação declarativa”