Programación General > Java
Clase Matriz
Eman:
hola, pues eme aqui queriendo experimentar con matrizes y cosas, y me salieron algunda de las operaciones basicas pero ahora quiero hacer una clase matris para que le de un poco mas de elegancia segun mi maestro jejej pues aqui les dejo el codigo que tengo hasta ahorita
--- Código: Text --- public class Matriz{ int renglon; int columna; int m[][]=new int[renglon][columna]; //constructor public Matriz(int a,int b) { renglon=a; columna=b; } public static void main(String[] args) { Matriz M1=new Matriz(1,1); M1.m[0][0]=1; System.out.println("matris"+M1.m[0][0]); }}
Lo que quiero es poder usar esa clase en el programa principal para poder hacer algo asi:
--- Código: Text --- public static void main(String[] args)Matriz m1=new Matriz(2,2) y que se cree la matriz y ya pueda trabajar con ella
El error que me sale cuado compilo el codigo de arriba es el siguiente:
C:\Archivos de programa\Java\jdk1.5.0\Programas>java Matriz
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Matriz.main(Matriz.java:17)
Cualquier aportacion es agradecida gracias de ante mano
chimps:
el problema es que por default, las variables que tenes renglon y columna se auto inicializan a sus valores default (que para un int es 0)...entonces el flujo de tu programa estaria haciendo algo tipo:
int renglo = 0;
int columna = 0;
int m[][]=new int[0][0];
El codigo que tenes dentro del contructor no tiene ningun efecto sobre la matriz m[][] ya que esta ya fue inicializada en el paso anterior. Para poder usar la clase con un constructor tipo Matriz m1=new Matriz(2,2), podes hacer lo siguiente:
--- Código: Text --- public class Matriz { private double[][] mat; public Matriz(int fila, int columna) { this.mat = new double[fila][columna]; }}
Eman:
con ese codigo me salen los sig errores:
--- Código: Text --- C:\Archivos de programa\Java\jdk1.5.0\Programas>"c:\Archivos de programa\Java\jdk1.5.0\bin\javac.exe" Matriz.javaMatriz.java:10: illegal start of expression this.m[][]=new double[fila][columna]; ^Matriz.java:10: ']' expected this.m[][]=new double[fila][columna]; ^Matriz.java:10: not a statement this.m[][]=new double[fila][columna]; ^3 errors
Habre echo algo mal?
chimps:
es this.mat = new double[fila][columna], no
this.mat[][] = new double[fila][columna];
Eman:
aa cierto muchas gracias =D.
Bueno ahora tengo otra duda, estoy tratando ahora de mter el programa a un frame y no se como acomodar las cosas sin unsar el FlowLayout() que es el que me las acomoda automaticamente. hay una forma facil de ahcerlo?
Tambien quisiera saber como limpiar el frame, por ejemplo tengo los botones que dan a opciones cuando se pican que se pongan los otros atributos pero que se borren los botones y aparesca uno de regresar o algo asi, sno se si me expliqu epero espero me puedan ayudar, si termino el trabajo se los muestro para ver si asi se dan una mejor idea
Navegación
[#] Página Siguiente
Ir a la versión completa