elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda getters
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda getters  (Leído 5,336 veces)
HastatusXXI

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Duda getters
« en: 15 Agosto 2016, 17:30 pm »

Hola.

Tengo una pequeña duda con un código de un libro que estoy leyendo de desarrollo de Android, pero el problema que tengo es simplemente de Java. El código es el siguiente:

Código
  1. public class Workout {
  2.    private String name;
  3.    private String description;
  4.  
  5.    public static final Workout[] workouts = {
  6.            new Workout("The Limb Loosener",
  7.                    "5 Handstand push-ups\n10 1-legged squats\n15 Pull-ups"),
  8.            new Workout("Core Agony",
  9.                    "100 Pull-ups\n100 Push-ups\n100 Sit-ups\n100Squats"),
  10.            new Workout("The Wimp Special",
  11.                    "5 Pull-ups\n10 Push-ups\n15 Squats"),
  12.            new Workout("Strength and Length",
  13.                    "500 meter run\n21 x 1.5 pood kettleball swing\n21 x pull-ups")
  14.    };
  15.  
  16.    //Each workout has a name and a description
  17.    private Workout(String name, String description) {
  18.        this.name = name;
  19.        this.description = description;
  20.    }
  21.  
  22.    public String getDescription() {
  23.        return description;
  24.    }
  25.  
  26.    public String getName() {
  27.        return name;
  28.    }
  29.  
  30.    public String toString() {
  31.        return this.name;
  32.    }
  33. }
  34.  

Mi duda está en la diferencia entre el método getName() y el método toString(). Según lo que tenía entendido hasta ahora, el toString daría el nombre de un objeto Workout ya instanciado (por el this) ¿Alguien me puede aclarar esto?


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda getters
« Respuesta #1 en: 15 Agosto 2016, 18:35 pm »

(si funciona como c)

name te dará como retorno el valor de una variable global llamada name... this.name te dará el valor de la variable name en esta clase... lo que no tenga "this" referenciará a globales, cualquier interno necesita el this para se llamado


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
Re: Duda getters
« Respuesta #2 en: 15 Agosto 2016, 18:48 pm »

si estas programando en POO entonces no deberas abusar de setter y getters

http://stackoverflow.com/questions/9416245/how-to-avoid-getters-and-setters
En línea

HastatusXXI

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Duda getters
« Respuesta #3 en: 15 Agosto 2016, 20:31 pm »

(si funciona como c)

name te dará como retorno el valor de una variable global llamada name... this.name te dará el valor de la variable name en esta clase... lo que no tenga "this" referenciará a globales, cualquier interno necesita el this para se llamado

Entiendo que al decir variable global name te refieres a una definida fuera de la clase. El caso es que el getter (sin this) devuelve el valor del atributo name del array de tipo Workout indicado, por ejemplo:
println(workouts[0].getName()) imprimiría por pantalla "TheLimbLoosener". Cabe decir que en el libro se define el método toString() (con el this), pero, al menos de momento, no se ha usado. De todos modos, mi duda sigue siendo respecto al uso o no del this.
En línea

HastatusXXI

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Duda getters
« Respuesta #4 en: 15 Agosto 2016, 20:32 pm »

si estas programando en POO entonces no deberas abusar de setter y getters

http://stackoverflow.com/questions/9416245/how-to-avoid-getters-and-setters

Grosso modo según he visto más o menos es por tema de seguridad, ¿no? Pero no todo el mundo los desaconseja, por lo que veo, si no que hay que distinguir bien en qué situaciones hay que usar uno de los dos, ambos, o ninguno, no poner sistemáticamente setter y getter a todas las clases, ¿no?
En línea

+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
Re: Duda getters
« Respuesta #5 en: 15 Agosto 2016, 21:45 pm »

 :-X :-X :-X

por ahi lei pero no encuentro donde...... ;D ;D que los setters y getters contradicen a alguno de los principios de SOLID

aca una lectura de solid...... ;-) ;-)
https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design


saludos ::)
En línea

Juanfernandez0032

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Re: Duda getters
« Respuesta #6 en: 17 Agosto 2016, 21:44 pm »

Hola, yo mas que respuestas tengo dudas  ;D ;D ;D ;D

La siguiente linea no seria el constructor de la clase ???

 private Workout(String name, String description)


un constructor puede ser private ?

En línea

Juanfernandez0032

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Re: Duda getters
« Respuesta #7 en: 17 Agosto 2016, 21:53 pm »

Listo, no se gasten, si, pueden ser privados

http://www.lawebdelprogramador.com/foros/Java/1076310-contructores-privados-en-java.html

 :silbar: :silbar: :silbar: :silbar: :silbar:
En línea

HastatusXXI

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Duda getters
« Respuesta #8 en: 18 Agosto 2016, 16:52 pm »

:-X :-X :-X

por ahi lei pero no encuentro donde...... ;D ;D que los setters y getters contradicen a alguno de los principios de SOLID

aca una lectura de solid...... ;-) ;-)
https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design


saludos ::)

Ni siquiera conocía SOLID. Nunca he programado en POO, solo aprendí un poco con Python y Java solo lo he trabajado en el paradigma imperativo. Me veo forzado a utilizar POO para aprender a desarrollar para Android. Gracias  :D
En línea

+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
Re: Duda getters
« Respuesta #9 en: 18 Agosto 2016, 23:04 pm »

hola acabo de leer tu mensaje, si entiendes solid de a poco estaras programando en POO, yo personalmente solo aplique S.O y D los otros 2 principios no les entendi muy bien,  :P :P :P
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 9,707 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
Duda duda y duda de Metasploit
Bugs y Exploits
huber_nomas 4 5,739 Último mensaje 17 Febrero 2012, 14:00 pm
por MauroMasciar
Encapsulación ¿por qué usar getters y setters?
Java
Aikanáro Anário 6 8,305 Último mensaje 13 Junio 2012, 23:17 pm
por Valkyr
Duda facil, [VIDEO QUE EXPLICA MI DUDA]
Diseño Gráfico
Ngeooz 6 8,803 Último mensaje 2 Diciembre 2013, 19:33 pm
por Ngeooz
[DUDA] Cambiar letra de unidad a archivo con un Batch [DUDA] « 1 2 »
Windows
MrMaticool 10 11,164 Último mensaje 12 Febrero 2014, 17:55 pm
por MrMaticool
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines