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

aclaracion con private y public

Estas en el tema de aclaracion con private y public en el foro de Java en Foros del Web. Hola chicos. Soy programadora php y estoy haciendo un curso de JAVA y tengo una pregunta que no me aclaro bien (el curso es para ...
  #1 (permalink)  
Antiguo 30/01/2007, 08:33
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
aclaracion con private y public

Hola chicos.
Soy programadora php y estoy haciendo un curso de JAVA y tengo una pregunta que no me aclaro bien (el curso es para programadores C++ que pasan a JAVA y empresa pasa que yo no he visto C++ en mi vida y stoy acostumbrada a php que no esta orientado a nada en fin)
La duda es siguiente, puedo yo en un clase "public" declarar variables o metodos private? y alreves.
O sea si declaro clase public es obligatorio que todos sus metodos sean public tambien.
Y tambien tengo clase private y quiero que algun que otro metodo que maneja variables public de esta clase sea public.
Gracias a todos.
  #2 (permalink)  
Antiguo 30/01/2007, 09:16
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: aclaracion con private y public

Puedes tenerlos, otra cosa es que en todos los casos tenga sentido . Es decir, si una clase es publica, puedes tener miembros privados, y de hecho es lo más común, y permitir únicamente el acceso a través de métodos... o no permitirlo. En cambio, tener una clase privada, unicamente accesible desde la propia clase, y hacer miembros publicos no tiene mucho sentido, ya que igualmente no tendrían acceso las clases desde fuera... De todas formas las clases privadas no suelen ser muy comunes, excepto en clases internas sólo para ser usadas dentro de otras clases (lo cual no es muy comun).
  #3 (permalink)  
Antiguo 30/01/2007, 11:29
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: aclaracion con private y public

Muchas gracias. Voy a declarar todos clases public para evitar confuciones de uso.
  #4 (permalink)  
Antiguo 30/01/2007, 17:40
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: aclaracion con private y public

Cita:
Iniciado por viktoria Ver Mensaje
Hola chicos.
Soy programadora php y estoy haciendo un curso de JAVA y tengo una pregunta que no me aclaro bien (el curso es para programadores C++ que pasan a JAVA y empresa pasa que yo no he visto C++ en mi vida y stoy acostumbrada a php que no esta orientado a nada en fin)
Solo como aclaracion, PHP tambien es orientado a objetos y puedes hacer tus clases public, protected o private; talves no tenga la potencia de JAVA, pero pues esta cerca(si el programador sabe documentarse y conoce a fondo lo que se puede hacer)
Un saludo.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #5 (permalink)  
Antiguo 01/02/2007, 02:51
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: aclaracion con private y public

Si gracias chicos, y se que php soporta OOP, pero como no me hacia falta hasta el momento utilizar este tipo de programacion no me entero bien del todo.
Y claro, entonces una pregunta mas.
tengo una clase public class particular que tiene una propiedad private int age,
public class particular
private int age //edad de cliente particular
esta propiedad solo nesesitara esta clase, pero claro hay otros clases que en un momento dado neseitaran saber este valor, no cambiarlo, entonces me imagino que puedo crear metodo publico que devolvera el valor
asi
public int getage(){
return age;}
Entonces cualquier clase puede acceder a valor de age? O sea no hace falta que la clase sea extends de partiuclar?
  #6 (permalink)  
Antiguo 01/02/2007, 03:22
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: aclaracion con private y public

Y otra pregunta, que estoy curiosa
si tengo una clase contacto
public class contact
con una propiedad privada
private string movil_work;
la clase public class particular extends contact
que hereda clase contact tambien hereda propiedades private de esta clase?
O solo se puede heredar propiedades publicas.
Gracias todos
  #7 (permalink)  
Antiguo 01/02/2007, 04:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: aclaracion con private y public

Cita:
public int getage(){
return age;}
Entonces cualquier clase puede acceder a valor de age?
Exacto. Esa es precisamente la función del modificador "public". Nota: La convención (informal) es poner la primera letra del atributo en mayusculas al darle nombre al get. age -> getAge(), name -> getName()...

Respecto a las propiedades privadas, las propiedades privadas se heredan en el sentido en que una instancia de una clase extendida si que las contiene, pero no se pueden manipular desde los metodos de las clases que las extienden.
  #8 (permalink)  
Antiguo 01/02/2007, 05:08
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: aclaracion con private y public

Gracias GreenEyed.
Como he entendido las claces extendidas heredan propiedades private de clase madre pero no las pueden modificar.
O sea que yo tengo 3 clases
public class client {
public int id_client;
}

public class contact extends client{
private string name;
private string phone;
}

public class particular extends contact {
private string age;}

//como yo entiendo si creo un particular entonces el va a heredar la propiedad id, name, phone y tener su propia propiedad age.
entonces si yo quiero UPDATE datos del particualar donde debo poner el metodo para cambiar sus datos?
Por ejemplo si quiero cambiar en un particular el nombre o telefono.
Y perdona por ser pesada.
  #9 (permalink)  
Antiguo 01/02/2007, 10:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: aclaracion con private y public

Si accedes a los datos privados de client (los nombres de clases suelen ser en mayusculas) el unico sitio donde puedes poner esos metodos es en la misma clase client. Los métodos publicos se heredan y son accesibles, así que aunque crearas una instancia de contact o particular, podrías usar esos métodos.

Te recomiendo el capitulo sobre herencia del Java Tutorial*, y juguetear con los ejemplos y un compilador para probar tu mismo lo que se puede y lo que no se puede hacer. Nada sustituye a la propia experiencia.

*http://java.sun.com/docs/books/tutor...ubclasses.html

Al principio la POO (Programacion Orientada a Objetos) se hace un poco dura .
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 06:04.