Avatar billede andreasbj Nybegynder
13. april 2005 - 21:00 Der er 18 kommentarer og
1 løsning

oprette array som classe

Jeg skal have oprettet en klasse der når man opretter den laver et todimensionelt array (int[][])...Der skal altså indtastes
Klasse liste = new Klasse(5,4)

derpå skal den lave et 2d array på formen liste[5][4].

har rodet med det lidt men kan ikke lige gennemskue hvordan det skal stilles op i selve klassen.

Det må være nemt for nogle af jer der arbejder mere med java.

Mvh. Andreas
Avatar billede arne_v Ekspert
13. april 2005 - 21:03 #1
Kan du ikke:

public class Klasse {
    private int[][] a;
    public Klasse(int m, int n) {
        a = new int[m][n];
    }
    ...
}

?
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:03 #2
det kan da godt ske..prøver det lige
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:13 #3
må jeg sige jeg er ret ny til det her. Kan godt få den til at lave det på den måde der. Men hvis jeg vil lave en metode der arbejder med dette array synes jeg ikke helt det funker..f.eks. hvis jeg prøver at lave toString-metoden om fra at skrive Hashcoden til at skrive a[1][1] (eller noget alá det) virker det ikke optimalt...
Avatar billede arne_v Ekspert
13. april 2005 - 21:20 #4
Kan du poste:
  - koden
  - output
  - ønsket output
?

Så kan det være at vi kan komme med nogle gode råd
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:32 #5
public class Sala
{
    private int[][] a;
    public Sala(int m, int n)
    {
    a = new int[m][n];
    }
   
public visSal()
        {
            int j=0;
            int i=0;

                while (j < ) //her skal stå at j er mindre end antallet af variablen m)
                {
                    while (i <  ) //her skal stå at i er mindre end antallet af variablen n)
                    {
                        return a[j][i];
                        i++;
                    }
                    i=0;
                    return(" ");
                    j++;
                }

        }
}

dette er taget fra klassen. Man skal bare skrive variablen.visSal() i hovedklassen og så skal den udskrive hele arrayet opstillet af alle rækker og kollonner..Skal nok uddybe det lidt mere hvis det er helt uklart..
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:38 #6
når jeg compiler den skriver den om "public visSal()" invalid method declaration; eturn type required. Ved godt det ikke er rigtig skrevet med return i selve metoden men det er det og det med hvordan variablen der indeholder arrayet skal skrives
Avatar billede arne_v Ekspert
13. april 2005 - 21:44 #7
public void visSal()

void for ingenting
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:44 #8
hvis man opretter objektet k(5,5) skal den når man skriver k.visSal() skrive

00000
00000
00000
00000
00000
Avatar billede arne_v Ekspert
13. april 2005 - 21:45 #9
while (j < a.length)
                {
                    while (i <  a[0].length)
                    {
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:47 #10
hvad skal der stå i stedet for variablerne. Den skal tage variablerne m og n og bruge dem for det oprettede objekt.
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:47 #11
prøver
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:51 #12
nu brokker den sig ikke over det...super...men nu hvor jeg har skrevet void retunerer den ikke noget...og hvis jeg skriver f.eks. String skriver den at  return a[j][i];  ikke er kompatibel med dette...skriver man int kan den ikke returnere  return(" "); ...jeg kan ikke lige gennemskue den.
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:55 #13
public class Sala
{
    private int[][] a;
    public Sala(int m, int n)
    {
    a = new int[m][n];
    }
   
public String visSal()
        {
            int j=0;
            int i=0;

                while (j < a.length) //her skal stå at j er mindre end antallet af variablen m)
                {
                    while (i <  a[0].length) //her skal stå at i er mindre end antallet af variablen n)
                    {
                        String k = "" + a[j][i];
                        return k;
                        i++;
                    }
                    i=0;
                    return(" ");
                    j++;
                }

        }
}

nu skriver den ved i++; "unreachable statement"
Avatar billede arne_v Ekspert
13. april 2005 - 21:55 #14
Mit gæt var at du ikke ville returnere noget men at du ville udskrive inde
i visSal !?
Avatar billede arne_v Ekspert
13. april 2005 - 21:57 #15
public void visSal()
        {
            int j=0;
            int i=0;

                while (j < a.length) //her skal stå at j er mindre end antallet af variablen m)
                {
                    while (i <  a[0].length) //her skal stå at i er mindre end antallet af variablen n)
                    {
                        System.out.print(a[j][i]);
                        i++;
                    }
                    i=0;
                    System.out.println();
                    j++;
                }

        }
Avatar billede andreasbj Nybegynder
13. april 2005 - 21:58 #16
ja det kan godt passe...forstår ikke helt hvad du mener (er lidt ny til java) men som tidligere skrevet skal den hvis man opretter objektet k(5,5) skal den når man skriver k.visSal() skrive

00000
00000
00000
00000
00000
Avatar billede andreasbj Nybegynder
13. april 2005 - 22:02 #17
jamen det er jo bare super det der..nu virker det..mange tak..svarer du lige så du kan få lidt point..og igen mange tak .
Avatar billede andreasbj Nybegynder
13. april 2005 - 22:04 #18
vidste ikke at man kunne få den til at skrive noget uden at skrive System.out.print(k.visSal())
men er da blevet klogere nu...
Avatar billede arne_v Ekspert
13. april 2005 - 22:21 #19
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester