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.
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.
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
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
- O modificador de acesso padrรฃo C# para o construtor precisa ser tornado pรบblico.
- 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.
Code Explicaรงรฃo:-
- 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.
- 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.
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();
}
}
}
Code Explicaรงรฃo:-
- O primeiro passo รฉ criar um objeto para a classe Tutorial. Isso รฉ feito atravรฉs da palavra-chave 'novo'.
- 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:
Na saรญda, podemos ver que o construtor foi realmente chamado e que o valor do TutorialName foi definido como โDefaultโ.
Observaรงรฃo: 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.






