Avatar billede laurits Nybegynder
15. juli 2003 - 15:09 Der er 4 kommentarer og
3 løsninger

Kompiler fejl. Hjælp!!

Jeg har et lille simplet program som jeg skal lære lidt fra, men jeg får kompiler fejl. Kan nogen se hvad problemet er??

class A
{
    int x;
   
    A()
    { x = 7; }   
    void foo(int x)
    { this.x = x; }   
}

class main
{
    A x = new A();
    A y = new A();   
    x.foo(11);
    y.foo(12);   
    System.out.println("x.x = "+ x.x + "y.y = "+ y.y);}
Avatar billede bearhugx Nybegynder
15. juli 2003 - 15:12 #1
ja .. du kan ikke skrive statements, hvor du gør i main-class'en

prøv
class main {
  public static void main(String[] args) {
  A x = new A();
    A y = new A();   
    x.foo(11);
    y.foo(12);   
    System.out.println("x.x = "+ x.x + "y.y = "+ y.y);} 
  }
}
Avatar billede soreno Praktikant
15. juli 2003 - 15:12 #2
Du har ingen main metode. Dette skulle compile:

class A
{
    public int x;
 
    public A()
    {
      x = 7;
    } 
   
    void foo(int x)
    {
      this.x = x;
    } 
}

class main
{
    public static void main(String args[])
    {
      A x = new A();
      A y = new A(); 
      x.foo(11);
      y.foo(12); 
      System.out.println("x.x = "+ x.x + "y.y = "+ y.y);
    }
}
Avatar billede soreno Praktikant
15. juli 2003 - 15:15 #3
Du kunne lave en "pænere" A klasse sådan:

class A
{
  private int x;
 
  public A()
  {
    x = 7;
  }

  public void setX(int x)
  {
    this.x = x;
  }

  public int getX()
  {
    return x;
  }
}

class Main
{
  public static void main(String args[])
  {
    A mitA = new A();
    mitA.setX(12345);
    System.out.println("minA har værdien: " + mitA.getX());
  }
}
Avatar billede bearhugx Nybegynder
15. juli 2003 - 15:15 #4
derudover bør du tilgå x-variablen i A med en get metode

altså
  class A {
    int x
    public A() {
      x = 7;
    }
    void setX(int newX) { this.x = newX; }
    int  getX() { return this.x; }
  }

  class Main {
    public static void main(String[] args) {
      A x = new A();
      A y = new A();   
      x.setX(11);
      y.setX(12);   
      System.out.println("x.x = "+ x.getX() + "y.y = "+ y.getX() );
    } 
  }

   
  }
Avatar billede arne_v Ekspert
15. juli 2003 - 15:16 #5
Ja din main er forkert. Det er en metode ikke en klasse.

Følgende virker:

class A {
    int x;

    A() {
        x = 7;
    }
    void foo(int x) {
        this.x = x;
    }

    public static void main(String[] args) {
        A x = new A();
        A y = new A();
        x.foo(11);
        y.foo(12);
        System.out.println("x.x = " + x.x + "y.y = " + y.x);
    }
}
Avatar billede laurits Nybegynder
15. juli 2003 - 15:16 #6
ja, hold da k.... hvor blind kan man blive ;-)  .....Tak.
Avatar billede bearhugx Nybegynder
15. juli 2003 - 15:17 #7
soreno >> to mand  - en tanke (set/get metoder)
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