Título: Acceder a variables dentro de la misma clase
Publicado por: evans88 en 7 Abril 2013, 19:19 pm
Hola, quería hacerles una consulta de como acceder a una variable declarada por otra funcion en la misma clase. No se si se entiende. Yo tengo un programa que estoy haciendo para hacer unos calculos de la universidad (todavia soy un poco nuevo a Java y es un hobbie), el problema es que tengo (casi) todo el programa en el main y lo quiero separar en clases, en fin, tengo esta clase: public class Ecuacion { public class Ecuacion ( double tr, double pr, double z0, int decimales ) { // Calculos matematicos........... //Aqui defino las variables a,b,z1 y error haciendoles algunas operaciones matematicas a los argumentos. por ejemplo: double b = pr/(8*tr); } /*Aqui hago el calculo (para lo que sirve el programa) y genero dos elementos del tipo Vector. Uno contiene los datos de las filas de una tabla y el otro el nombre de las columnas. Por ejemplo:*/ columnas.add("<html>Z<sub>i</sub></html>:"); columnas.add("<html>Z<sub>i+1</sub></html>:"); columnas.add("error (%)"); // Y luego quiero que esta clase devuelva los vectores filas y columnas para poderlos utilizar en el main de otra clase. return filas, columnas; } }
Ahora bien, lo que yo he intentado y no puedo hacer es utilizar las variables z1,z0,error,a y b de la funcion Ecuacion en la funcion Calcular(). Si me podrian ayudar se los agradeceria mucho
Título: Re: Acceder a variables dentro de la misma clase
Publicado por: dennis094 en 10 Abril 2013, 00:24 am
Te falta declarar las variables antes del constructor me parece. Yo haria algo asi: /** * * @author Dennis */
//CLASE ECUACION
public class Ecuacion {
//variables public class Ecuacion private double tr; private double pr; private double z0; private int decimales; private double b; //constructor
public Ecuacion(double tr, double pr, double z0, double b, int decimales) { this.tr = tr; this.pr = pr; this.z0 = z0; this.decimales = decimales; this.b = (getPr() / (8 * getTr())); } //get = sacar valor; set = asignar valor.
public double getTr() { return tr; }
public void setTr(double tr) { this.tr = tr; }
public double getPr() { return pr; }
public void setPr(double pr) { this.pr = pr; }
public double getZ0() { return z0; }
public void setZ0(double z0) { this.z0 = z0; }
public int getDecimales() { return decimales; }
public void setDecimales(int decimales) { this.decimales = decimales; }
public double getB() { return b; }
public void setB(double b) { this.b = b; } } // MAIN
public class MAIN{ public static void main(String[] args) { Ecuacion ec1 = new Ecuacion(12.2,10.1,10.0,10.6,3); System.out.println("El resultado de 'b' es: "+ ec1.getB()); } }
Esta hecho un poco "bruto" pero bueno, asi puedes calcular el valor de b. Siempre que quieras interactuar con objetos y clases debes instanciar los objetos, y darles un cierto valor. Lo he hecho en 10 min y esta un poco jarcho, pero funciona jajaja. Igual para calcular 'b' deberia haber hecho un metodo aparte y eso, pero bueno... Lo de las matrices ya no se decirte por que aun no he dado nada de eso... PD:. te aconsejo un muy buen libro sobre java, con documentacion, ejercicios... PIENSA EN JAVA, 4º Edicion. Un saludo !
Título: Re: Acceder a variables dentro de la misma clase
Publicado por: Mitgus en 11 Abril 2013, 00:55 am
Hola. Primero que nada unos consejillos. 1.- Tódo método debe empezar por minúscula. Ejemplo: calcular() En caso sean 2 palabras, la primera letra de la segunda palabra se puede escribir con mayúscula: getVectores() 2.- La sintaxis del constructor de la clase debe ser: public NombreDeLaClase()
No se debe anteponer 'class' por que no es una clase. 3.- Siempre declara las variables que vas a usar en distintos métodos al inciciar la clase. Si una variable solo es necesaria para un metodo, se debe declarar dentro del metodo. 4.- Acostúmbrate a usar métodos setters y getters como te dijo el compañero de arriba. setVector() -> Set de usa para establecer un valor u operaciones. getVector() -> Get se usa para obtener valores u operaciones. Es una buena práctica de programación. Ahora, te dejo tu código modificado, para que te des cuenta de algunos detalles: import java.util.Vector; public class Ecuacion { private double tr; private double pr; private double z0; private double b=0; private int decimales; public Ecuacion( double tr, double pr, double z0, int decimales ) { // Calculos matematicos........... //Aqui defino las variables a,b,z1 y error haciendoles algunas operaciones matematicas a los argumentos. por ejemplo: this.tr = tr; this.pr = pr; this.z0 = z0; this.decimales = decimales; b = pr/(8*tr); } // fin constructor // metodo para obtener el resultado de la ecuacion public double getEcuacion() { return b; } public void calcular() { /*Aqui hago el calculo (para lo que sirve el programa) y genero dos elementos del tipo Vector. Uno contiene los datos de las filas de una tabla y el otro el nombre de las columnas. Por ejemplo:*/ columnas.add("<html>Z<sub>i</sub></html>:"); columnas.add("<html>Z<sub>i+1</sub></html>:"); columnas.add("error (%)"); // Y luego quiero que esta clase devuelva los vectores filas y columnas para poderlos utilizar en el main de otra clase. } // metodo para obtener el Vector columnas { return columnas; } public static void main (String[] args ) { Ecuacion ejemplo = new Ecuacion(9.2,11.3,5.7,4); // ejemplo de uso de metodos de la clase ejecutora ejemplo.calcular(); // Aquí haces tus operaciones con los datos obtenidos de la clase, por ejemplo yo los imprimo System. out. println("Tu vector es: "+ejemplo. getVectores() ); System. out. println("La ecuacion es : "+ejemplo. getEcuacion() ); // ahora, tambien es factible hacer esto Vector columna ; // creas una variable personal para 'obtener' valores usando metodos que llame el objeto del main columna = ejemplo.getVectores(); System. out. println("Tu vector es: "+columna ); // es el mismo resultado! } } // fin
Por Consola: Tu vector es: [<html>Z<sub>i</sub></html>:, <html>Z<sub>i+1</sub></html>:, error (%)] La ecuacion es : 0.1535326086956522 Tu vector es: [<html>Z<sub>i</sub></html>:, <html>Z<sub>i+1</sub></html>:, error (%)]
Bendiciones :)
Título: Re: Acceder a variables dentro de la misma clase
Publicado por: evans88 en 11 Abril 2013, 03:18 am
Muchas gracias por todo, el problema era que las tenia que declarar. Gracias ademas por los consejos. Saludos
|