NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosNet : Dotnetframework003
Quer receber novidades e e-books gratuitos?

Introdução ao .NET Framework – Parte 3

Objetivos:

Este parte do tutorial discute o .NET Framework e o Common Language Runtime. Também fornece introdução a sintaxe de classes, estruturas e declarações de métodos.

Pré-requisitos:

Ter estudado a parte 2 deste tutorial.

Usando classes e estruturas

Classes são modelos de objetos. Elas descrevem o tipo e a quantidade de dados que um objeto possui mas não representam uma instância em particular de um objeto. Um exemplo real de uma classe pode ser um “Carro”  - A idéia abstrata de um carro. Você sabe que um carro tem um motor, marchas, cor, média de consumo e mais uma dúzia  de outras propriedades. Embora a classe “Carro” possa descrever todas estas propriedades de um carro e mais as ações que ele pode realizar ela não representa um carro específico. Um carro que você vê na rua, em contrapartida, é um objeto. Ele tem um cor específica, um motor específico, um consumo específico e marchas específicas. Carros diferentes podem ter diferentes valores para cada uma destas propriedades mas todos são conhecidos por serem uma instância de uma classe “Carro”.

Membros

Classes descrevem propriedades e comportamentos de objetos que são representados por membros desta classe. Membros são métodos, campos, propriedades e eventos de uma classe em particular. Campos e propriedades representam dados sobre o objeto – a cor do carro, o consumo e o tipo de transmissão por exemplo. Métodos representam alguma coisa que o objeto possa fazer como acender os faróis. Eventos representam algo que possa ocorrer com o objeto como um acidente ou uma ultrapassagem.

Nota

Este tutorial discute campos e métodos mas a frente discutiremos sobre propriedades e eventos.

Criando classes

Você pode criar uma nova classe utilizando as palavras chaves Class (Visual Basic .NET) ou class (C#). Por exemplo:

Visual Basic .NET

Public Class Widget

    ‘ A implementação da classe ocorre aqui

End Class

C#

public class Widget

{

    // A implementação da classe ocorre aqui

}

Neste exemplo você utiliza a palavra chave Class (class) para criar uma classe definida pelo usuário. O nome da classe é Widget. A palavra chave Public (public) especifica o nível de acesso da classe. Níveis de acesso serão estudados mais a frente.

Criando estruturas

Criar estruturas é muito similar a criar classes. Você usa a palavra chave Structure (Visual Basic .NET) ou struct (C#). Por exemplo:

Visual Basic .NET

Public Structure Vector

    ‘ A implementação da estrutura ocorre aqui

End Structure

C#

public struct Vector

{

    // A implementação da estrutura ocorre aqui

}

Adicionando membros

No Visual Basic .NET a classe compreend tudo aquilo que esta entre as palavras chaves Class e End Class. No C# a classe compreende tudo aquilo que está entre colchetes ({}) logo após o nome da classe. Estruturas são similares. Tanto nas classes como nas estruturas você pode adicionar membros. O texto abaixo exemplifica isto:

Visual Basic .NET

Public Class Widget

    Public Spin As Integer

End Class

C#

public class Widget

{

    Public int Spin;

}

A nossa classe Widget contém um membro chamado Spin. Esta variável tem nível de acesso público e pode conter um valor inteiro. Mas a frente neste tutorial iremos discutir como adicionar métodos como membros de sua classe.

Classes aninhadas

Tipos podem conter outros tipos. Tipos que estão contidos dentro de outros tipos são chamados de tipos aninhados. Utilizando o exemplo de classes  uma classe aninhada é uma classe que a classe pai necessita criar e manipular e que ela não é necessária fora da classe pai. Um exemplo disso pode ser a classe “roda”.  A classe “roda” poderá criar e manipular a classe “raio” mas externamente talvez nunca seja preciso ter a classe “raio”. Um exemplo mais real pode ser a classe Gerente de Contas que pode controlar toda e qualquer iteração com o objetos Conta. Você pode querer não permitir que uma classe Conta seja criada independetemente de uma classe Gerente de Contas. Então a classe Conta é aninhada dentro da classe Gerente de Conta. Isto não significa que uma classe aninhada jamais será instânciada por um objeto que não derive de sua clase pai. Isto vai depender do nível de acesso dado a classe aninhada. A seguir temos exemplos de classes aninhadas.

Visual Basic .NET

Public Class Widget

    ‘ O código da classe Widget começa aqui

    Private Class Widgurt

        ‘  O código da classe Widgurt começa aqui

    End Class

End Class

C#

public class Widget

{

    \\ O código da classe Widget começa aqui

    public class Widgurt

    {

        \\  O código da classe Widgurt começa aqui

    }

            }

Instanciando tipos definidos pelo usuário

Você declara e instância um tipo definido pelo usuário da mesma forma como você declara e instância um tipo da .NET Framework Base Class Library. Para os dois tipos: Por referência (classes) e por valores (estruturas) você declara a variável com o tipo que deseja e depois instância o objeto utilizando a palavra chave New (new). Veja o exemplo a seguir:

Visual Basic .NET

Public Class Demo

   Public Structure ValueDemo

      Public X As Integer     

   End Structure

   Public Class RefDemo

      Public Y As Integer

   End Class

   Public Sub InstantiateTypes()

      ' This line declares a ValueDemo variable

      Dim DemoStructure As ValueDemo

      ' This line creates an instance of ValueDemo on the stack

      DemoStructure = New ValueDemo()

      ' The variable is ready to receive data.

      DemoStructure.X = 15

      ' This line declares a RefDemo variable, but doesn't

      ' create an instance of the class

      Dim DemoClass As RefDemo

      ' This line actually creates the object

      DemoClass = New RefDemo()

      ' And you can now assign value to its members

      DemoClass.Y = 15

   End Sub

End Class

C#

public class Demo

{

   public struct ValueDemo

   {

      public int X;

   }

   public class RefDemo

   {

      public int Y;

   }

   public void InstantiateTypes()

   {

      // This line declares a ValueDemo variable

      ValueDemo DemoStructure;

      // This line creates an instance of ValueDemo on the stack

       DemoStructure = new ValueDemo();

      // The variable is ready to receive data

      DemoStructure.X = 15;

      // This line declares a RefDemo variable, but doesn't create

      // an instance of the class

      RefDemo DemoClass;

      DemoClass = new RefDemo();

      // And you can now assign value to its members

      DemoClass.Y = 15;

   }

}

Classes versus estruturas

Superficialmente classes e estruturas parecem similar. Ambas contém membros como campos, e métodos, necessitam de um construtor para criar uma instância delas e como todos os tipos da .NET Framework Base Class Library ambas instanciam objetos. A chave da diferença entre as duas é que classes são tipos por referência e estruturas são tipos por valor. Vendo isto em um nível mais baixo podemos afirmar que os dados da classe são armazenados na área de memória chamada heap enquanto os dados de uma estrutura são armazenados em uma área de memória chamada stack. Armazenar dados na stack permite um acesso mais rápido e leve porém uma grande quantidade de dados na stack impacta na performance das aplicações.

Em termos práticos é melhor usar estruturas para objetos pequenos e leves que não duram por muito tempo. Classes devem ser usadas para objetos  com grande volume de dados  e que ficaram na memória por um longo período.

1 Visão geral do .NET Framework e do CLR
1 Comunicação .NET e VB 6.0 (com Visual Studio.NET 2005) - Parte I
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 1
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 2
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 3
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 4
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 5
1 VB: Menu Principal, Menu PopUp e Arquivos Texto
Visual Studio
1 ASP.NET 2.0 - Conhecendo o ObjectDataSource Control
1 Visual Web Developer - 2005 - Beta 2 - Introdução
1 ASP.NET 2.0 - Conhecendo o GridView
1 ASP.NET 2.0 - Utilizando o GridView e DetailsView
1 ASP.NET 2.0 - Conhecendo o ObjectDataSource Control - Parte 2
1 ASP.NET 2.0 - Utilizando o XmlDataSource
1 Envio de e-mail através de formulário web
1 ADO.NET 2.0 - Conhecendo as novidades parte 1
1 Série Visual Source Safe - Parte 1
1 Série Visual Source Safe - Parte 3
1 URL Indexável – Reescrever URL de uma forma amigável
1 Permissão de Página Utilizando Web.Config
1 Usando public interface
1 Trabalhando com o componente TabContainer
1 Adicionando Menu no DataGridView
ASP.NET
1 Conhecendo o ambiente integrado do WebMatrix
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte I
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte II
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte III
1 Acessando um banco de dados facilmente com ADO.Net e Datagrid
1 Desvendando os segredos do Dataset- Parte I
1 Construindo um Sistema de Publicação de Notícias – Parte 1
1 Construindo um Sistema de Publicação de Notícias – Parte 2
1 Construindo um Sistema de Publicação de Notícias – Parte 3
1 Construindo um Sistema de Publicação de Notícias – Parte 4
1 Construindo um Sistema de Publicação de Notícias – Parte 5
1 Login com Perfil de Acesso
1 Guest Book com XML - Parte 1
1 Guest Book com XML - Parte 2
1 Agendando Datas no Calendário com XML
1 Filtrando e Organizando Dados com o Controle DataView
1 Lista de Dados com Subitens – Parte 1
1 Lista de Dados com Subitens – Parte 2
1 Trabalhando com Arquivos e Diretórios – Parte 1
1 Trabalhando com Arquivos e Diretórios – Parte 2
1 Trabalhando com Arquivos e Diretórios – Parte 3
1 Sistema de Enquetes baseado em WebServices – Parte 1
1 Sistema de Enquetes baseado em WebServices – Parte 2
1 Sistema de Enquetes baseado em WebServices – Parte 3
1 Upload de Arquivos
1 Crie seu próprio código de verificação
1 Login e Senha com FormsAuthentication – Parte 1
1 Login e Senha com FormsAuthentication – Parte 2
1 Sistema de Enquetes baseado em WebServices – Parte 4
1 Sistema de Enquetes baseado em WebServices – Parte 5
1 Sistema de Enquetes baseado em WebServices – Parte 6