Classe – O que é – [C#]

No mundo da programação de software, classe é um modelo de um objeto.

 

Ele encapsula variáveis, funções, estrutura, propriedades e muitos outros componentes.

 

É a tentativa de modelar objetos do mundo real para o mundo digital.

 

Porém um objeto do mundo real é muito complexo. Por isso, simplificamos o nosso modelo quando criamos sua classe correspondente.

 

Afinal, ao desenvolver um sistema dificilmente precisaremos de todas as características de um objeto. Então podemos modelar sua classe apenas com as características que precisaremos utilizar no escopo do sistema.

 

Na programação orientada a objetos, as classes e os métodos são essenciais. É o bloco de construção básico. A classe fornece reutilização do código e torna a programação C# mais segura.

Classe

 

Para criar uma classe, usamos a palavra-chave class, seguida pelo nome da classe.

 

O corpo da classe fica entre chaves {}.

 

Abaixo temos um exemplo geral de uma classe

 

<nivel_de_acesso> class  nome_da_classe
{
   // variáveis
   <nivel_de_acesso> <tipo> variavel1;
   <nivel_de_acesso> <tipo> variavel2;
   ...
   <nivel_de_acesso> <tipo> variavelN;
   // métodos
   <nivel_de_acesso> <tipo do retorno> metodo1(lista_de_parametros)
   {
      // corpo do método
   }
   <nivel_de_acesso> <tipo do retorno> metodo2(lista_de_parametros)
   {
      // corpo do método
   }
   ...
   <nivel_de_acesso> <tipo do retorno> metodoN(lista_de_parametros)
   {
      // corpo do método
   }
}

 

Dicas na construção de classes:

  • O nome da classe deve ser um substantivo e deve possuir um significado.
  • Use pascal case e camel case. Em camel case, a primeira letra é pequena. Ex. camelCase. No pascal case, a primeira letra é maiuscula. Ex. PascalCase. É estritamente recomendado que você use o pascal case para o nome da classe e o camel case para nome de variáveis.
  • O nome da sua classe não deve conter nenhum caractere especial, exceto o sublinhado (_) ou dígito. E deve começar com um caractere.
  • Não use palavras-chave reservadas para o nome da classe.

 

Construtores de uma classe C# (Constructors)

 

Uma classe do tipo construtor (constructor) é uma classe especial que é executada sempre que criamos novos objetos dessa classe.

 

Um construtor tem o mesmo nome que o da classe e não possui nenhum tipo de retorno. O exemplo seguinte explica o conceito de construtor:

 

using System;
namespace ExConstrutor
{
   class Linha
   {
      private double comprimento;   // Comprimento da linha
      public Linha()
      {
         Console.WriteLine("Objeto sendo criado");
      }

      public void setComprimento(double comp)
      {
         comprimento = comp;
      }
      
      public double getComprimento()
      {
         return comprimento;
      }

      static void Main(string[] args)
      {
         Linha linha = new Linha();    
         
         // atribui comprimento a linha
         linha.setComprimento(6.0);
         Console.WriteLine("Comprimento da linha: {0}", linha.getComprimento());
         Console.ReadKey();
      }
   }
}

 

Quando executamos o código acima, temos:

 

Objeto sendo criado
Comprimento da linha : 6

 

Um construtor padrão não tem nenhum parâmetro, mas, caso necessário, um construtor pode ter parâmetros.

Esses construtores são chamados de construtores parametrizados. Esta técnica ajuda você a atribuir o valor inicial a um objeto no momento da criação, como mostrado a seguir:

 

using System;
namespace ExConstrutorComParametro
{
   class Linha
   {
      private double comprimento;
      public Linha(double comp)  //Construtor parametrizado
      {
         Console.WriteLine("Objeto sendo criado, comprimento = {0}", comp);
         comprimento = comp;
      }

      public void setComprimento(double comp)
      {
         comprimento = comp;
      }
      public double getComprimento()
      {
         return comprimento;
      }

      static void Main(string[] args)
      {
         Linha linha = new Linha(10.0);
         Console.WriteLine("Comprimento da linha: {0}", linha.getComprimento()); 
         
         // atribui comprimento a linha
         linha.setComprimento(6.0);
         Console.WriteLine("Comprimento da linha: {0}", linha.getComprimento()); 
         Console.ReadKey();
      }
   }
}

 

Quando executamos o código, temos:

 

Objeto sendo criado, comprimento = 10
Comprimento da linha: 10
Comprimento da linha: 6

 

Destrutores de uma classe C# (Destructors)

 

Um destrutor (destructor) é uma classe especial que é executada sempre que um objeto de sua classe está fora do escopo. Um destrutor tem exatamente o mesmo nome que o da classe com o prefixo til (~) e não pode retornar um valor nem pode levar nenhum parâmetro.

 

O destrutor pode ser muito útil para liberar recursos de memória antes de sair do programa. Destrutores não podem ser herdados ou sobrecarregados.

 

Veja o exemplo seguinte:

 

using System;
namespace ExDestrutor
{
   class Linha
   {
      private double comprimento;
      public Linha()  // construtor
      {
         Console.WriteLine("Objeto sendo criado");
      }
      ~Linha() // destrutor
      {
         Console.WriteLine("Objeto sendo excluído");
      }

      public void setComprimento(double comp)
      {
         comprimento = comp;
      }
      
      public double getComprimento()
      {
         return comprimento;
      }

      static void Main(string[] args)
      {
         Linha linha = new Linha();
         
         // atribuindo comprimento
         linha.setComprimento(6.0);
         Console.WriteLine("Comprimento da linha: {0}", linha.getComprimento());           
      }
   }
}

 

Executando o exemplo acima temos:

 

Objeto sendo criado
Comprimento da linha : 6
Objeto sendo excluído

 

Palavras finais

 

  • Classe é um modelo de um objeto do mundo real. É o bloco de construção básico da programação orientada a objetos e é reutilizável.
  • Uma classe C# define propriedades, campos, eventos, métodos, etc. Um objeto é uma instância de uma classe.
  • Modificadores de acesso definem a acessibilidade de uma classe: public, private, protected ou internal.
  • Um Namespace pode incluir uma ou mais classes.

 

Não é objetivo esgotar este assunto tão abrangente com apenas um artigo.

 

No próximo artigo da série veremos os métodos e propriedades das classes, o que são e para que servem.

 

Se cadastre na lista VIP do Celso para ser avisado quando os próximos artigos da série forem publicados.

Comece pelo e-book GRATUITO

5 Passos Para Ser Um App Dev

Se você não sabe por onde começar, este e-book te mostra os passos para ser um desenvolvedor de aplicativos de sucesso.
100% livre de spam.

Para enviar seu comentário, preencha os campos abaixo:

Deixe uma resposta

*

Seja o primeiro a comentar!