Estaba leyendo algunas publicaciones y noté muestras con una clase interna. Lo he estado viendo mucho últimamente, particularmente en algunos ejemplos en MSDN que estaba revisando. Nunca antes tuve que usar una clase interna (pero tal vez debería serlo), así que me pregunto cuál es exactamente el punto. Supongo que una clase interna (al menos una privada) está solo disponible para la clase principal en sí misma, entonces ¿no sería lo mismo simplemente incorporar cualquier funcionalidad que la clase interna tenga en algunos métodos de la clase externa? ¿Hay una razón OO detrás de la clase interna?¿Propósito de una clase interna?
Estoy pensando principalmente en C#, pero supongo que esto podría aplicarse a cualquier lenguaje OO que admita una clase interna.
Tome this sample on msdn por ejemplo: CharacterCollection y WordCollection son clases públicas dentro de la clase Document. ¿Qué diferencia habría si estos estuvieran fuera de la clase Document?
Entonces, en este ejemplo, ¿cómo usarías Node? Cuando pienso que es público, imagino que de alguna manera tengo acceso a él fuera de Tree, ¿sería ese el caso o el hecho de que Node sea público de alguna manera hace que anule otra clase Node que se encuentra fuera de Tree? – pinkfloydx33
Sí, porque está fuera del árbol, es accesible como "Árbol :: Nodo", lo que garantiza que obtendrá el Nodo que desea. También está claro para cualquier otro lector del código a qué nodo se refiere. –
Dentro de Tree entonces supongo que no tendría que especificar que quería Tree :: Node versus SomeOtherNS :: Node? – pinkfloydx33