Modificador de acesso internal implícito para classe ok, para os métodos e propriedades o modificador de acesso implícito é protected?
Modificador de acesso internal implícito para classe ok, para os métodos e propriedades o modificador de acesso implícito é protected?
Stefano Boa noite Escrevi um pequeno código para você poder um pouco melhor
//Classe visível apenas pelo Assembly
internal class ClasseInternal
{
//Classe visível apenas pela classe aqual essa classe pertence, no caso a ClasseInternal
private class ClassePrivate
{
}
}
//Classe visível por todo Assembly e por quem puder acessar o assembly!
public class ClassePublica
{
//Visivel apenas por esse classe
private int VariavelPrivada;
//Visivel apenas por herança
protected int VariavelProtected;
//Visivel por todos que instanciarem essa classe
public int VariavelPublica;
//Visivel apenas por essa classe
private void MetodoPrivado()
{
}
//Visivel por todos que instanciarem essa classe
public void MetodoPublico()
{
}
//Esse é o que pega mais gente, ele é praticamente igual ao default, com a diferença de que se uma classe
//(mesmo que esteja fora do pacote) estende da classe com o atributo protected,
//ela terá acesso a ele. Então o acesso é por pacote e por herança.
protected void MetodoProtected()
{
}
//Método construtor da classe
public ClassePublica()
{
this.MetodoPrivado();
this.MetodoProtected();
this.MetodoPublico();
}
}
//Classe que herda a ClassePublica e recebe acesso ao VariavelProtegida
public class UsaVariavelProtected:ClassePublica
{
public UsaVariavelProtected()
{
UsaVariavelProtected u = new UsaVariavelProtected();
u.VariavelProtected = 10;
u.MetodoProtected();
}
}