Los modificadores de visibilidad controlan el acceso a clases, objetos, interfaces, constructores, funciones y otro tipo de propiedades.

Tipo Acceso disponible en
public En cualquier lugar
private Solo en la clase donde se define
protected En la clase y sus subclases (herencia)
internal Dentro del mismo módulo, que es parte de un proyecto (app, library, network, etc)