Siempre que creo una clase entidad en un programa hago lo siguiente:
public class Estudiante{
private string nombre;
return nombre;
}
public void setNombre(string nombre){
this.nombre = nombre;
}
}
Pero nunca me he preguntado porqué en vez de poner los atributos públicos tengo que ponerlos privados y crear métodos para acceder a las propiedades de una clase.
Imagínate que la cadena nombre tiene que tener más de 3 caracteres y menos de 5.
El set se encargará de comprobar si lo que le entra es válido o no.
Es la propia clase la que define sus "normas". De la otra forma la clase que lo llama podría setear lo que quisiese sin comprobar nada.