Modificadores de acesso (especificadores) em C# com exemplos de programas

O que é modificador de acesso (especificador) em C#?

Modificadores de acesso ou Especificadores de acesso em C# são as palavras-chave usadas para definir a visibilidade de uma propriedade ou método de classe. É usado quando você não deseja que outros programas vejam as propriedades ou métodos de uma classe. Os modificadores de acesso restringem o acesso para que outros programas não possam ver as propriedades ou métodos de uma classe.

Existem 6 tipos de modificadores de acesso em C#:

  • Privado
  • Público
  • Protegido
  • Interno
  • Protegido Interno
  • Privado Protegido

Aprenderemos sobre os principais modificadores de acesso em C# com exemplos de programas conforme explicado abaixo.

Modificadores de acesso privado em C#

Quando o modificador de acesso privado é anexado a uma propriedade ou a um método, significa que esses membros não podem ser acessados ​​por nenhum programa externo.

Exemplo de modificador de acesso privado

Vamos dar um exemplo e ver o que acontece quando usamos o modificador de acesso privado.

Vamos modificar o código atual em nosso arquivo Tutorial.cs. No método SetTutorial, vamos alterar a palavra-chave pública para privada.

Modificadores de acesso privado

Agora vamos mudar para nosso arquivo Program.cs. Você notará que há uma linha vermelha ondulada no método SetTutorial.

Como declaramos o método SetTutorial como privado em nossa classe Tutorial, o Visual Studio detectou isso. Ele informou ao usuário, destacando-o, que agora este método não funcionará no arquivo Program.cs.

Modificador de acesso privado

Modificadores de acesso público C#

Quando o modificador de acesso público é anexado a uma propriedade ou a um método, significa que esses membros podem ser acessados ​​a partir de qualquer programa externo. Já vimos isso em nossos exemplos anteriores.

Exemplo de modificador de acesso público

Modificadores de acesso público C#

Como definimos nossos métodos como públicos na classe Tutorial, eles podem ser acessados ​​a partir do arquivo Program.cs.

Modificadores de acesso protegido em C#

Quando o modificador de acesso protegido é anexado a uma propriedade ou a um método, significa que esses membros podem ser acessados ​​apenas por classes herdadas do atual classe. Isso será explicado com mais detalhes na classe Herança.

Modificadores de acesso interno C#

Quando um modificador de acesso interno é anexado a uma propriedade ou a um método, esses membros podem ser acessados ​​apenas por um programa interno, mas não por um programa externo.

Construtor C#

C# Os construtores são usados ​​para inicializar os valores dos campos de classe quando seus objetos correspondentes são criados. Um construtor é um método que possui o mesmo nome da classe. Se um construtor for definido em uma classe, ele fornecerá o primeiro método que é chamado quando um objeto é criado. Suponha que tivéssemos uma classe chamada Employee. O método construtor também seria nomeado como Employee().

As seguintes coisas importantes precisam ser observadas sobre os métodos construtores

  1. O modificador de acesso padrão C# para o construtor precisa ser tornado público.
  2. Não deve haver nenhum tipo de retorno para o método construtor.

Exemplo de construtor C#

Vamos agora ver como podemos incorporar o usuário dos construtores em nosso código. Usaremos construtores para inicializar os campos TutorialID e TutorialName com alguns valores padrão quando o objeto for criado.

Passo 1) O primeiro passo é criar o construtor para nossa classe Tutorial. Nesta etapa, adicionamos o código abaixo ao arquivo Tutorial.cs.

Construtor C#

Explicação do código: -

  1. Primeiro adicionamos um novo método que tem o mesmo nome da classe. Por ter o mesmo nome da classe, C# trata isso como um método construtor. Então agora sempre que o método chamador criar um objeto desta classe, este método será chamado por padrão.
  2. No construtor Tutorial, estamos definindo o valor de TutorialID como 0 e TutorialName como “Default”. Assim sempre que um objeto for criado, esses campos sempre terão esses valores padrão.

Agora vamos mudar para nosso arquivo Program.cs e apenas remover a linha que chama o método SetTutorial. Isso ocorre porque queremos apenas ver como o construtor funciona.

Construtor C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public Tutorial()
  {
   TutorialID=0;
   TutorialName="Default";
  }
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Explicação do código: -

  1. O primeiro passo é criar um objeto para a classe Tutorial. Isso é feito através da palavra-chave 'novo'.
  2. Usamos o método GetTutorial da classe Tutorial para obter o TutorialName. Isso é então exibido no console por meio do método Console.WriteLine.

Se o código acima for inserido corretamente e o programa for executado, a seguinte saída será exibida.

Saída:

Construtor C#

Na saída, podemos ver que o construtor foi realmente chamado e que o valor do TutorialName foi definido como “Default”.

Nota: Aqui o valor “default” é obtido do construtor.

Resumo

  • Modificadores de acesso C# ou especificadores de acesso são usados ​​para definir a visibilidade de uma propriedade ou método de classe.
  • Quando o modificador de acesso privado é anexado a uma propriedade ou a um método, significa que esses membros não podem ser acessados ​​por nenhum programa externo.
  • Quando o modificador de acesso público é anexado a uma propriedade ou a um método, significa que esses membros podem ser acessados ​​a partir de qualquer programa externo.
  • Quando o modificador de acesso protegido é anexado a uma propriedade ou a um método, significa que esses membros podem ser acessados ​​apenas por classes herdadas da classe atual.
  • Quando um modificador de acesso interno é anexado a uma propriedade ou a um método, esses membros podem ser acessados ​​apenas por um programa interno, mas não por um programa externo.
  • Os construtores C# são usados ​​para inicializar os valores dos campos de classe quando seus objetos correspondentes são criados.