Foro de elhacker.net

Programación => Java => Mensaje iniciado por: dato000 en 14 Febrero 2011, 19:24 pm



Título: Problema con llamada de funciones (SOLUCIONADO)
Publicado por: dato000 en 14 Febrero 2011, 19:24 pm
Buenas, la verdad es que soy muy pero muy basico con esto, no se como hacerle, he tratado de correrlo, pero no se como solucionarlo.

debo hacer una llamada a unas funciones para cargar y leer unos string.

Pero en el momento de llamar las funciones me sale que debo crear unas clases, no se como debo instanciar esto, me sale todo mal, por favor necesito unos consejos.

Código:
package unilibre;

import javax.swing.*;
import java.io.*;
import java.util.Date;
/**
 *
 * Manuel Camilo Cepeda Martinez 066091006
 */

public class UArchivos {

String nombrearchivo="camilo cepeda 066091006";
String ruta_1="cualquier sitio";
String contenido_1="teorico";

leerArchivo nuevo= new leerArchivo(nombrearchivo, ruta_1);

        public void leerArchivo(String nombreArchivo, String ruta) {
            nombreArchivo = nombrearchivo;
            ruta = ruta_1;
            System.out.println(nombreArchivo);
            System.out.println(ruta);
        }

        /*public void crearArchivo(String nombreArchivo, String ruta, String contenido) {
            try
                {
                         File archivo = new File(JOptionPane.showInputDialog("Nombre del archivo"));
                         fos=new FileOutputStream(archivo,true);
                         dos=new DataOutputStream(fos);
                         do
                             dos.writeInt(leerArchivo("practica1", "practica2"));
                         while(JOptionPane.showConfirmDialog(null,"Continuar")==0);
                }
                catch(IOException e)
                {
                    JOptionPane.showMessageDialog(null,"error");
                }
                try
                {
                    if(fos!=null)
                        fos.close();
                }
                catch(IOException e)
                {
                    JOptionPane.showMessageDialog(null,"Error al cerrar archivo");
                }
        }*/



        public static void main(String[] args) {
            new UArchivos();
            
         //void funcioncrear= new  crearArchivo("Ensayo", "UNILIBRE D:", "Contenido caracter");
            //leerArchivo("Ensayo", "UNILIBRE D:");      
        }
}






Título: Re: Problema con llamada de funciones
Publicado por: Gallu en 14 Febrero 2011, 20:35 pm
Primero que nada has de crear la clase bien para poder instanciarla , fíjate en lo siguiente
Código
  1. import javax.swing.*;
  2. import java.io.*;
  3. import java.util.Date;
  4. /**
  5.  *
  6.  * Manuel Camilo Cepeda Martinez 066091006
  7.  */
  8.  
  9. public class UArchivos {
  10.  
  11. private String nombreArchivo;  //mejor privadas por temas de encapsulamiento
  12. private String ruta;
  13.  
  14.  
  15.        public void leerArchivo(String nombreArchivo, String ruta) {
  16.            this.nombreArchivo = nombreArchivo; //usa la referencia this para referirte a las variables de instancia
  17.            this.ruta = ruta;
  18.            System.out.println(nombreArchivo);
  19.            System.out.println(ruta);
  20.        }      
  21.  
  22.  
  23.  
  24.  
  25.        public static void main(String[] args) {  
  26.  
  27. UArchivos nuevo= new UArchivos();  //instancias/creas un objeto de la clase
  28. nuevo.leerArchivo("camilo cepeda 066091006", "cualquier sitio");   //llamas al método utilizando la instancia
  29.  
  30.        }
  31. }
  32.  




Título: Re: Problema con llamada de funciones
Publicado por: dato000 en 14 Febrero 2011, 20:48 pm
gracias gracias gracias, mil gracias, aun no entiendo bien lo del this y lo de las instancias, pero gracias!!


Título: Re: Problema con llamada de funciones
Publicado por: Gallu en 14 Febrero 2011, 20:52 pm
Una clase es un "plantilla" desde donde creas (instancias) los objetos , instanciar un objeto es crearlo en memoria , lo haces cuando utilizas la palabra reservada new , this es una referencia que apunta siempre al objeto en que se está usando , cuando haces this.nombreArchivo , estás diciéndole a la JVM " utiliza la variable de instancia nombreArchivo de ESTE objeto.


Título: Re: Problema con llamada de funciones (SOLUCIONADO)
Publicado por: dato000 en 14 Febrero 2011, 21:05 pm
 
Código:
public void leerArchivo(String nombreArchivo, String ruta) {            

     this.nombreArchivo = nombreArchivo;
     //usa la referencia this para referirte a las variables de instancia            
     this.ruta = ruta;          
     System.out.println(nombreArchivo);            
     System.out.println(ruta);        

}

THIS  se refiere a la variable??

public void leerArchivo(String nombreArchivo, String ruta) {