Avatar billede mik28 Seniormester
17. september 2003 - 17:06 Der er 15 kommentarer og
1 løsning

Vector sikkert helt banalt

Jeg vil gerne lære lidt omkring vectorer så jeg har et par spørgsmål jeg gerne vil have et lille svar på.

Jeg har forstået at vectorer er lidt det samme som arrays bare med den forskel at en vector selv finder ud af hvor mange elementer der er i den og man derfor ikke behøver at angive hvor lang den skal være?

Hvad er grunden til at jeg ikke kan kompilere dette?

import java.io.*;
import java.util.Vector;

public class Vectorclass
    {
      String n = "test";
    String p = "test1";
     
      Vector v1 = new Vector();
    v1.addElement(n);
    v1.addElement(p);   
}
Avatar billede arne_v Ekspert
17. september 2003 - 17:10 #1
Du har eksekverbare sætninger udenfor en metode !
Avatar billede arne_v Ekspert
17. september 2003 - 17:10 #2
Men du har forstået Vector korrekt.
Avatar billede arne_v Ekspert
17. september 2003 - 17:11 #3
Men du skal have puttet ihvertfald de sidste 2 linier måske alle 5
ind i en metode eventuelt en constructor.
Avatar billede mik28 Seniormester
17. september 2003 - 17:13 #4
import java.io.*;
import java.util.Vector;

public class Vectorclass
    {
     
      public void vectorTest ()
        {

      Vector v1 = new Vector();
    v1.addElement("n");
    v1.addElement("p");   
       
    }
}
Avatar billede mik28 Seniormester
17. september 2003 - 17:14 #5
Det giver ikke så meget mening andet end det for mig rent forståelsesmæssige :-) Tak for det :-)
Avatar billede mik28 Seniormester
17. september 2003 - 17:18 #6
Forresten når jeg laver constructorer så skal de hedde det samme som klassen ikke, og jeg kan lave alle dem som jeg gider. F.eks hvis jeg nu vil have at klassen skal kunne modtage kald med forskelligt antal argumenter.
Avatar billede arne_v Ekspert
17. september 2003 - 17:21 #7
Ja - det er meget normalt med flere constructor'ere med forskellige
argument lister.
Avatar billede arne_v Ekspert
17. september 2003 - 17:22 #8
Et lille fif - constructorer kan kalde hindanden:

public class X {
    private int v;
    public X(int v) {
        this.v = v;
    }
    public X() {
        this(0);
    }
}
Avatar billede mik28 Seniormester
17. september 2003 - 17:33 #9
Er det her en kikset måde at gøre det på?

import java.io.*;
import java.util.Vector;

public class Vectorclass
    {
     
      private Vector Vectorclass (String s)
    {

      Vector v1 = new Vector();
    v1.addElement(s);
    return v1;   
    }
     
      private Vector Vectorclass (String s, String s1)
    {

      Vector v1 = new Vector();
    v1.addElement(s);
    v1.addElement(s1);   
    return v1;   
    }
   

}
Avatar billede arne_v Ekspert
17. september 2003 - 18:15 #10
Det virker ikke.

En constructor returnerer ikke en type.
Avatar billede arne_v Ekspert
17. september 2003 - 18:17 #11
Følgende bør compile:

import java.util.Vector;

public class Vectorclass {
    private Vector v1;
    private Vectorclass(String s) {
        v1 = new Vector();
        v1.addElement(s);
    }
    private Vectorclass(String s, String s1) {
        Vector v1 = new Vector();
        v1.addElement(s);
        v1.addElement(s1);
    }

}
Avatar billede arne_v Ekspert
17. september 2003 - 18:18 #12
Hov. Ikke helt færdi med at redigere.

Det skal være:

import java.util.Vector;

public class Vectorclass {
    private Vector v1;
    private Vectorclass(String s) {
        v1 = new Vector();
        v1.addElement(s);
    }
    private Vectorclass(String s, String s1) {
        v1 = new Vector();
        v1.addElement(s);
        v1.addElement(s1);
    }

}
Avatar billede mik28 Seniormester
17. september 2003 - 18:20 #13
okay tak. Af en eller anden grund kompilerer det her
Avatar billede arne_v Ekspert
17. september 2003 - 18:23 #14
Det er også legalt Java.

Men det gør bare ikke det man tror det gør.
Avatar billede arne_v Ekspert
17. september 2003 - 18:24 #15
Mit eksempel var iøvrigt stadigt ikke korrekt. Constructor skal formentlig
være public:

import java.util.Vector;

public class Vectorclass {
    private Vector v1;
    public Vectorclass(String s) {
        v1 = new Vector();
        v1.addElement(s);
    }
    public Vectorclass(String s, String s1) {
        v1 = new Vector();
        v1.addElement(s);
        v1.addElement(s1);
    }
}
Avatar billede mik28 Seniormester
17. september 2003 - 18:24 #16
En god ting at vide :-)
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