Programación General > Java

 Clase Matriz

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa