Modificador de acesso internal implícito para classe ok, para os métodos e propriedades o modificador de acesso implícito é protected?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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();
}
}