Bienvenido(a), Visitante. Favor de ingresar o registrarse.

Ingresar con nombre de usuario, contraseña y duración de la sesión

Foros del Club

Páginas: [1]   Ir Abajo
  Enviar tema  |  Imprimir  
Autor Tema: Pasaje de argumentos por referencia en JAVA  (Leído 2579 veces)
0 Usuarios y 4 Visitantes están viendo este tema.
CID
Administrador
Legend
*****

Prestigio: 22
Desconectado Desconectado

Sexo: Masculino
Estudiante de: Arte de la informática
Título universitario: Programador
Profesión: Desarrollador
Mensajes: 1136



WWW
Lenguajes:
Varios
Bases de datos:
Varios
« en: 21/10/2006, 13:55:07 »

De pronto estaba estudiando para el parcial y me encuentro con un problema. Necesitaba una programar un método de éste estilo:

Código
String Extraer(String &s){
 String r = s[0];
 s = s.copy(1, s.length()-1);
 return r;
}

Ese método extrae el primer caracter de s, lo retorna por valor y por referencia "retorna" s modificado.
Pero JAVA me presentó un desafio en cuanto a ésto, JAVA no pasa por referencia!!

Asi que después de investigar encontré una manera:

Código
public class aea{	
 
public static void main(String []args){
myString i = new myString();
i.set("gaston");
aea a = new aea();
a.f(i);
String t = "gaston";
a.g(t);
System.out.println("obj "+i.get());
System.out.println("var "+t);
 
}
 
public void g(String s){//por valor
s = "rodolfo";
}
 
public void f(myString y){//por valor "y" por referencia x
y.set("rodolfo");
}
}
 
class myString{
private String x;//att
public myString(){ x = "";}//cons
public String get(){return x;}//f m
public void set(String xxx){x = xxx;}
}
 

La solución implica crear un objeto que tenga como atributo las variables que cierto metodo necesita modificar -al estilo de procedure de pascal- y aplicar los cambios a sus miembros, logrando asi propagación fuera de éste.
No se que creen ustedes, pero me parece una pérdida de tiempo tener que declarar otra clase para poder usar funciones con "argumentos pasados por referencia".

Saludos.
En línea

Tavo
Technocrat
*********

Prestigio: 0
Desconectado Desconectado

Sexo: Masculino
Título universitario: Ninguno
Profesión: GameDeveloper(GD) y Desarrollador
Mensajes: 144




Lenguajes:
Visual Basic
Real Basic
Python
C/C++
Java
SQL
Bases de datos:
SQLite
MySQL
« Respuesta #1 en: 22/10/2006, 13:33:58 »

Bueno, realmente me puse a buscar y encontre esto:

Citar
Las referencias en Java no son punteros ni referencias como en C++. Este hecho crea un poco de confusión entre los programadores que llegan por primera vez a Java. Las referencias en Java son identificadores de instancias de las clases Java. Una referencia dirige la atención a un objeto de un tipo específico. No hay por qué saber cómo lo hace ni se necesita saber qué hace ni, por supuesto, su implementación.

Aca en esta web te lo explica (Busca a donde dice Referencias en Java): http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte5/cap5-15.html
En línea

Foros del Club
   

 En línea
Páginas: [1]   Ir Arriba
  Enviar tema  |  Imprimir  
 
Ir a: