Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Metodo ToString() En Gambas3 [Resuelto]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Metodo ToString() En Gambas3 [Resuelto] 
 
Hola gente! una consulta, alguien implemento el metodo ToString() como si fuera en Java para imprimir los atributos de un objeto? en Java seria algo así:

@override
public String ToString() {
    return "El nombre es: " + getNombre() + "El apellido es; " + getApellido() + "La edad es: " + getEdad();
}


Trate de hacerlo en gambas de esta forma pero al ejecutarlo me tira (Function Persona 4)

Public Function ToString() As String
  
  Return "Nombre: " & Nombre_Read & "Apellido: " & Apellido_Read & "Edad: " & Edad_Read
  
End


Alguna idea de que puede ser? en POO es normal sobreescribir los metodos ToString y Equals, pero lamentablemente estoy peleado un poco con la sintaxis de Gambas3, lo que si puede hacerlo es desde el codigo Main acceder a las propieades de esta forma

Print "Nombre: " & persona_uno.Nombre & " Apellido: " & persona_uno.Apellido & " Edad: " & persona_uno.Edad


Pero hacerlo así es una chanchada obviamente, siguiendo la teoria de POO es mejor sobreescribir el metodo ToString para ello. Alguna idea de como solucionarlo? saludos a todos.
P/D en vez de usar Nombre_Read probe pasarle la propiedad osea Nombre, pero me tira un error y no me deja compilar, asi que asumo que Gambas3 se comporta como Java y se le debe de pasar el metodo Get.
 



 
última edición por Invitado el Jueves, 07 Abril 2016, 20:15; editado 2 veces 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Metodo ToString() En Gambas3 
 
sulky16v2:


Desde dentro de la clase lo tendrias que hacer asi:
Public Function ToString() As String
  
  Return "Nombre: " & me.Nombre & "Apellido: " & me.Apellido & "Edad: " & me.Edad
  
End


Tienes que usar "me" (en otros lenguajes se utiliza la palabra "this","self"...) que indica que es el mismo.
http://gambaswiki.org/wiki/lang/me?l=es
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Jueves, 07 Abril 2016, 07:55; editado 2 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Metodo ToString() En Gambas3 
 
jsbsan escribió: [Ver mensaje]
sulky16v2:


Desde dentro de la clase lo tendrias que hacer asi:
Public Function ToString() As String
  
  Return "Nombre: " & me.Nombre & "Apellido: " & me.Apellido & "Edad: " & me.Edad
  
End


Tienes que usar "me" (en otros lenguajes se utiliza la palabra "this","self"...) que indica que es el mismo.
http://gambaswiki.org/wiki/lang/me?l=es


Sabes que me sigue tirando el mismo error, te mando una captura
 pantallazo

Dejo el codigó: la clase principal es:

' gambas class file

Private $nombre As String
Private $apellido As String
Private $edad As Integer

'Constructor
Public Sub _new(nombre As String, apellido As String, edad As Integer)
  
  $nombre = nombre
  $apellido = apellido
  $edad = edad
  
End

'propiedad de Nombre
Property Nombre As String

Private Function Nombre_Read() As String

  Return $nombre

End

Private Sub Nombre_Write(Value As String)

  $nombre = Value

End

'propiedad de Apellido
Property Apellido As String

Private Function Apellido_Read() As String

  Return $apellido  

End

Private Sub Apellido_Write(Value As String)

  $apellido = Value

End

'propiedad de Edad
Property Edad As Integer

Private Function Edad_Read() As Integer

  Return $edad

End

Private Sub Edad_Write(Value As Integer)

  $edad = Value

End

'Override
Public Function ToString() As String
  
  Return "Nombre: " & Me.Nombre & "Apellido: " & Me.Apellido & "Edad: " & Me.Edad
  
End


y la que contiene el Main
' gambas module file

Private persona_uno As Persona

Public Sub Main()

Dim nombre As String
Dim apellido As String
Dim edad As Integer

Print "Creación de un Objeto"
Print "Ingrese su Nombre: "
Input nombre
Print "Ingrese su Apellido: "
Input apellido
Print "Ingrese su Edad: "
Input edad
persona_uno = New Persona(nombre, apellido, edad)
'Print "Nombre: " & persona_uno.Nombre & " Apellido: " & persona_uno.Apellido & " Edad: " & persona_uno.Edad
Print persona_uno.ToString
End

 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Metodo ToString() En Gambas3 
 
...hace falta los dos paréntesis:

Print persona_uno.ToString()

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Metodo ToString() En Gambas3 
 
A mí este código me funciona perfecto:
Private $nombre As String
Private $apellido As String
Private $edad As Integer

'Constructor
 Public Sub _new(Optional nombre As String, Optional apellido As String, Optional edad As Integer)
'  
   $nombre = nombre
   $apellido = apellido
   $edad = edad
'  
 End

'propiedad de Nombre
Property nombre As String

Private Function nombre_Read() As String

  Return $nombre

End

Private Sub nombre_Write(Value As String)

  $nombre = Value

End

'propiedad de Apellido
Property Apellido As String
Private Function Apellido_Read() As String

  Return $apellido  

End

Private Sub Apellido_Write(Value As String)

  $apellido = Value

End

'propiedad de Edad
Property Edad As Integer

Private Function Edad_Read() As Integer

  Return $edad

End

Private Sub Edad_Write(Value As Integer)

  $edad = Value

End

'Override
Public Function ToString() As String
  
  Return "Nombre: " & Me.nombre & " Apellido: " & Me.Apellido & " Edad: " & Me.Edad
  
End

Le he dado como opcionales los parámetros, pera mayor flexibilidad en creación y supongo que también funcionaría cambiando la función toString así:
Citar:
Public Function ToString() As String
  
  Return "Nombre: " & $nombre & " Apellido: " & $apellido & " Edad: " & $edad
  
End

Pero esto último no lo he probado
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Metodo ToString() En Gambas3 
 
vuott escribió: [Ver mensaje]
...hace falta los dos paréntesis:

Print persona_uno.ToString()


Gracias!!!! era eso, saludos.
 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Metodo ToString() En Gambas3 
 
Publico la solución por si a alguna persona en el futuro le llega a pasar, el problema fue el autocompletado del IDE de gambas 3 al escribir nombre_del_objeto.nombre_del_metodo no me completo con los parentesis sino que el metodo ToString() me lo autocompleto ToString. Gracias a todos, voy a seguir porteando ejemplo que tengo de facultad a Gambas3 para luego subirlos.
 



 
 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario