Foros del Web » Programación para mayores de 30 ;) » Java »

comando "private"

Estas en el tema de comando "private" en el foro de Java en Foros del Web. Hola a todos, quizá les pueda parecer una tontería, pero llevo estudiando un par de semanas JAVA y no consigo entender para que sirve el ...
  #1 (permalink)  
Antiguo 16/01/2004, 10:52
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 11 meses
Puntos: 0
comando "private"

Hola a todos,

quizá les pueda parecer una tontería, pero llevo estudiando un par de semanas JAVA y no consigo entender para que sirve el comando private al designar variables, ¿para qué queremos que los demás objetos no puedan ver dichas variables?

Si me llu pueden explicar...

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 16/01/2004, 20:21
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Partamos de un consepto muy basico, un lebguage para que sea orientado a objetos POO debe cumplir 4 requisitos ecenciales:

-debe poseer abstracción
-debe soportar la herencia
-debe poseer encampsulamiento
-debe poseer polimorfismo

El tercer requisito nombrado aqui es lo refernte al po que a los metodos clases o variables le decimos cual sera su alcance. Veamos esto, cuando se programan objetos, estos son instancias de una plantilla en este caso llamadas clases, estas tienen la funcionalidad de enviarse mensajes entre ellas para poder inter actuar, pero lo que hace importante este consepto de encapsulación es que una clase no tiene por que saber como funciona otra clase, a ella solo le importa entregarle lo que necesita y que esta le entregue los resultados y viseversa, al encapsular los datos nos aseguramos de que estos no podran ser manipulados por clases que no lo deciemos.

Veamos un ejemplo pequeño.

class Auto {
int numRuedas;
}

si bien esta clase es correcta, no es optima, pues cualquier clase podria manipular el dato del numero de ruedas simplemente con hacer

Auto auto = new Auto();
auto.numRuedas = 5;

y lo mas seguro es que no sea lo deceado, en este caso debemos ocultar ese dato a las demas clases y hacer un metodo que asigne el numero de ruedas, por ejemplo

class Auto {
private int numRuedas;

public void asignarRuedas(int r) {
numRuedas = r;
}
}

de este modo ya no podriamos hacer lo que hicimos anteriromente de llegar y asignar lo datos a tontas y a locas, sino que la clase nos obliga a ocupar su metodo, es decir

auto.asignarRuedas(5);

De cualquier forma, si estas recien comenzando con la POO hay muchas cosas que te pareceran absurdas y complicadas en un principio, pero a medida que tu experiencia avance te iras dando cuenta que son esas cosas absurdas las que te lo hacen muy facil y poderoso.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 19/01/2004, 03:25
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 11 meses
Puntos: 0
Tienes toda la razón en lo de "hay muchas cosas que te pareceran absurdas y complicadas en un principio", ya que esto es lo que me pasó con lenguajes Web como PHP, que al final lo que pensé más absurdo me resultó lo más útil.

Muy bien explicado, muchas gracias.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:49.