Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Hquinn en 07 de Enero 2016, 14:46

Título: Java qué ocurre si no se especifica modificador acceso public private CU00649B
Publicado por: Hquinn en 07 de Enero 2016, 14:46
Otro ejercicio más!

Código: [Seleccionar]
public class JugandoConStrings
{
 
    public JugandoConStrings(){
        //Nada que declarar
    }
   
    String combinacionStrings (String valorTexto1, String valorTexto2, String valorTexto3){
        String combinacion = valorTexto1.substring(0,2) + " " + valorTexto2.substring(0,4) + "-" +
        valorTexto3.substring(0,6);
        return combinacion;
    }
   
}

Y para poner en el CodePad
Código: [Seleccionar]
System.out.println(jugandoC1.combinacionStrings("Pato", "Estridente", "Motoreta"));
Y funciona! Genial el curso xD
Título: Re:CU00649B - Estudiando el concepto de método Java. El método substring de la clas
Publicado por: Dan_SB en 07 de Enero 2016, 19:28
Hola Hquinn

Todo bien, todo correcto ... Lo unico que voy a decir nada mas para llenar,que si no colocas ningún modificador de acceso (public, protected, private..) a tu función, entonces la función "combinacionString" se podra invocar/acceder/utilizar desde cualquier clase dentro del paquete (o package) donde se definió.

No se si se te olvido poner el public, o lo hiciste a proposito... jeje
Salu2  ;D
Título: Re:CU00649B - Estudiando el concepto de método Java. El método substring de la clas
Publicado por: Hquinn en 07 de Enero 2016, 19:31
Gracias por contestar Dan!

Podría decir que está hecho adrede pero no xD olvido total!
Título: Re:CU00649B - Estudiando el concepto de método Java. El método substring de la clas
Publicado por: Dan_SB en 07 de Enero 2016, 19:39
jajajajajajajaja naah no pasa nada, a veces tanto codigo nos nubla la vista XD

salu2!
Título: Re:Java qué ocurre si no se especifica modificador acceso public private CU00649B
Publicado por: DaniMir en 12 de Febrero 2016, 09:56
Hola, una cosa que no me queda clara, ¿que diferencia existe entre no poner ningun modificador y poner public?. Cuando se pone private ¿es para que ese campo o atributo solo se pueda utilizar en esa clase no?

Gracias,
            Un saludo.
Título: Re:Java qué ocurre si no se especifica modificador acceso public private CU00649B
Publicado por: Dan_SB en 12 de Febrero 2016, 16:05
DaniMir, he preparado este ejemplo para que notes la diferencia muy notoria entre el identificador "Public" y el no poner ningún modificador, que por cierto, me entere que a este ultimo caso le llaman "acceso de paquete" (Y ya notaras porque la llaman así):

Supongamos que tengas un proyecto, y en ese proyecto tengas 2 paquetes (o package) creados en el

(http://i.imgur.com/UvHXzfL.png)

Como ves, el paquete "ASDf" contiene dos clases (SoyLink y SoyMario) mientras que el paquete "Nuevo" solo tiene una clase (Main). Ahora, en ambas clases vamos a definir 1 solo atributo, un método (setter) y una función (getter).

En la clase "SoyLink", vamos a definir el setter como publico... mientras que el getter, asignemoslo como un acceso de paquete.

(http://i.imgur.com/PnBwwZg.png)

En la clase "SoyMario", simplemente asignamos ambos como public.
(http://i.imgur.com/npv4IQI.png)

Ahora vamonos al otro paquete "Nuevo", abrimos la clase Main donde creamos un vulgar método main y aquí viene lo interesante...
(http://i.imgur.com/Qce9UdH.png)

De la instancia de la clase "SoyLink" solo puedo acceder solamente al setter que definimos como public... mientras que el getter brilla por su ausencia (getNombre).

Y si probamos con la otra clase "SoyMario"?
(http://i.imgur.com/nBWKX3E.png)

Mira que de esta instancia si puedo acceder al setter y al getter, pues porque ambas estan definidas como public.

Aquí la diferencia... si no le asignas un modificador de acceso te veras forzado a solo utilizar dicho elemento dentro del paquete, mientras que con un public, puedes utilizarlo fuera y dentro del paquete al que pertenece.

En cuanto al modificador private, así como has dicho trabaja. Solo se puede utilizar dentro de la clase. . . hay otro mas que se llama protected, pero este lo vas a comprender mucho mejor cuando llegues a la parte de herencia en el curso.

Salu2!!
Título: Re:Java qué ocurre si no se especifica modificador acceso public private CU00649B
Publicado por: DaniMir en 12 de Febrero 2016, 17:45
Muchas gracias por la explicación, está muy bien y me has resuelto la duda gracias!