segunda-feira, 30 de agosto de 2010

MCTS-536 - Cap 1 - Fundamentos do Framework Continuacao

Conceitos de OO

Encapsulamento: Objetivo Esconder membros
·        Tipos
§         Public: Todos.
§         Protected: A classe proprietária e todas que herdam.
§         Friend: A classe proprietária e todas do mesmo assembly.
§         Protected Friend: A classe  proprietária, as do mesmo assembly, e as que herdam.
  • Classes Top Level somente aceitam os encapsulamentos (Public, Friend).
  • TopLevel: É uma classe que não está aninhada com nenhuma outra, e rege o encapsulamento de todo o assembly.
Herança
  • Toda classe somente poderá herdar de uma outra classe, neste caso herança simples, porém uma classe pode herdar de mais de uma interface.
  • Shadows: Substitui um método da classe herdada. Pode ter outra assinatura. Pode substituir qualquer elemento.
  • Overrides: Subtitui o método com a mesma assinatura. Usando em propriedades ou métodos.
  • MustOverrides: Membro Abstrato, trata-se de métodos de uma classe abstrada, ou seja este membro não foi definido e precisa ser reescrito pela classe que herda.
  • MustInherit: Indica que é uma classe abstrata.
  • NotInheritable: Impede a Herança
Classes
  • Declaração igual a de herança
    • Class ClasseFilha : Interface
    • Classe ClasseFilha : ClassePai
  • Interfaces mais usadas
    • IComparable: Classes cujos valores podem ser ordenados
    • IDisposable: Classes para liberar recursos
    • IConvertible: Conversão para um tipo primario
    • IClonable:Copiar um objeto
    • IEquatable:Comparação para igualdade
    • IFormatable:Converte para uma string formatada
  • Partial Classes: Divide a classe em vários outros arquivos. Por exemplo form.cs, form.designer.cs
  • Type Forwading: Move um tipo, de um assembly para outro. A sintaxe é a seguinte, escrita na origem:
    • [assembly:TypeForwardedTo(typeof(Destino.tipo))]
Generics
·        Quando a variável na classe pai é declarada como o tipo object. Nestes casos as operações na classe pai seriam executada
  • Conversão de tipo é feita com a informação do tipo antes da variavel entre parêntesis
Eventos
  • É um sinal enviado por um evento sinalizando a ocorrência de uma ação
  • Event Handler: É um delegate de Eventos, não tem retorno, caso um retorno seja necessário sugere-se utilizar um novo evento, um delegate ou um generics do tipo Event Handler
  • Todo Event Handler deve ser adicionado ao projeto com o AddHandler, esse comando associa o método ao Handler, e faz parte do objeto System.
  • Um evento tem sempre dois parâmetros, um do tipo object e outro do tipo EventArgs
Delegate
  • É uma maneira de se passar como parâmetro um método

Atributos
  • São informações descritivas de um método, tipo ou propriedade que são vizualizadas através de uma técnica chamada reflection, que é parte do objeto System.Atributes. São informados entre [].
Conversão de tipos
  • Conversão automática somente é aceita nos casos onde a variável convertida caiba no tipo convertido.
  • Boxing: Transformar um value type em tipo object
  • Unboxing: Tranformar um tipo object em um value type.
  • Conversao e Custom Types

quarta-feira, 25 de agosto de 2010

MCTS-536 - Cap 1 - Fundamentos do Framework Continuacao

Mais Tipos

Fields: Valor guardado na classe. (Variável Global)
Methods: Ações executadas pela classe (Métodos)
Properties: Uma maneira de outras classes acessarem os valores desta classe.
Interfaces: É uma abstração da classe e de seus membros (Propriedades)
  • Não herda de System.Object
  • Provê uma descrição dos methods, properties e events
Tipos Primitivos: São os tipos mais simples.
  • Microsoft intermediate language(MSIL): Uma linguagem portável, intermediaria.
  • MSIL Assembler: Compila o código para essa linguagem intermediaria
MSIL
VB
Class Library
Significado
Bool
Boolean
System.boolean
F/V
Char
char
System.char
Caracteres
Float32
float
System.Single
Decimais com baixa precisao
Float64
Double
System.Double
Decimais com enorme precisao
Int32
Integer
System.Int32
-2147483648 a 2147483648
Int64
Long
System.Int64
Números enormes negativos e positivos
Unsigned Int8
Byte
System.Byte
0 a 255
Int16
Short
System.Int16
-32768 a 32767
Sbyte
Sbyte
System.sbyte
-127 a 128
uint
Uint
System.Uint32
Números enormes positivos
Decimal
Decimal
System.decimal
Precisao enorme, usado para financeiros
IntPTR
Intptr
System.IntPtr
Ponteiros
Date
Date
System.Datetime
Datas
Objetos:
·        Properites, Fields e Methods são chamados Members (membros) do Objeto.
·        Um objeto é uma instancia de uma classe.
Custom Types: São as estruturas, declaradas com Structure. Podem ser chamados de UserDefined Types
  • São Value Types
  • Elas podem ter métodos, propriedades, mas principalmente, campos (fields).
  • Parecem com classes, diferenciam-se apenas por serem alocados na Stack. Classes são alocadas no Heap
  • Utilizado quando tem muitas instancias para o mesmo objeto, menor que 16 bytes.
Enumeration: São os Enums
  • São Value Types
  • São compostas por tipos numéricos, principalmente o integer.
  • Os Enums  utilizam-se de Bit Flags para se relacionarem através de conectores lógicos (and,or)
  • Bit flags nada mais são que o 0 significando false e o 1 significando true.

terça-feira, 24 de agosto de 2010

MCTS-536 - Cap 1 - Fundamentos do Framework

Introducao
      Amigos Bloggers essa é uma tentativa de auxiliar outros profissionais que desejam estudar para certificaçoes e afins e nao dispoe do conhecimento ou do tempo para se dedicar a lingua Inglesa. Perdoem os erros de portugues e as abreviacoes.. ;)

Tipos

System.Object: Raíz de todos os tipos
  • Public Equals: Verifica se um objeto é igual a outro.
  • Public getHashCode: Função de Hash ou tabela de hash. Hash é uma codificação que visa simplificar a o código de uma informação maior.
  • Public getType: Retorna o tipo do objeto
  • Public toString: Retorna a string que representa
  • Protected Finalize: Faz o trabalho do garbage collector, liberando recursos
  • Protected memberWiseClone: Faz uma copia fiel do objeto referenciado
Value Types: São tipos que herdam de System.ValueType, que por sua vez herdam de System.Object
  • Diferenciam-se do tipo referencia (Reference Type), por serem alocados na memória
  • Novos Value types podem ser criados, através das enums e structures
  • Ficam na Stack
  • Parâmetros são passados por valor a não ser que seja explicito por referencia
  • Classes não são Value Types.
  • Tipos Primitivos:
    • Int16
    • Int32
    • Int64
    • Byte
    • Single
    • Double
    • Boolean
    • Char
    • Decimal
    • String
    • System.Array
    • intPtr
  • Podem ser declarado como nulos. 
Reference Types: Qualquer outro tipo que não seja Value Type. Guardam o endereço de memória e n
  • Esse tipos são alocados no Heap, e necessitam ser tratados pelo garbage collector.
  • Heap é o local onde as variaveis são guardadas no momento da execução, ainda existe o Stack, que é o local onde estas variáveis são guardadas antes do runtime, tem escopo local.
  •  Interfaces não são reference types.
  •  Esses tipos devem sempre ser instanciados, new. Todas as Instancias estão na Heap.
  •  Quando uma variável Referenced Type recebe outra (=), ela passa a apontar para o endereço dessa outra.