Just nu i M3-nätverket
Gå till innehåll

parametrar i java


pcdoktor

Rekommendera Poster

Hej

Håller på med ett java program som skall bytta ut olika personers namn via en metod i en annan klass.

 

Så här ser metoden ut:

 

public void setName(String fn, String en) {

fn = "Kalle";

en = "Andersson";

 

}

 

Och så här ser det ut i den andra klassen:

 

p3.setName(String fn, String en);

 

Namnet är först satt i denna klass men jag vill ändra på det vi metoden setName, jag får kompileringsfel.

Är jag helt ute och cyklar eller???

 

Länk till kommentar
Dela på andra webbplatser

p3.setName(String fn, String en);

...

Är jag helt ute och cyklar eller???

Ja, du kan ju inte ha en typdeklaration av argumenten när du gör anropet.

 

Länk till kommentar
Dela på andra webbplatser

Som du skulle anropat vilken annan metod som helst, du skriver ju inte

System.out.println(String "kalle");

eller hur?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Hur skall jag då anropa metoden setName?

 

Ta bort typdeklarationen

p3.setName( fn, en);

 

där fn och en är strängar med lämpliga värden.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Nej precis.

Då när jag skriver ut så gör jag följande:

 

System.out.println(p1);

 

Men borde jag inte kunna anropa metoden setName innan jag gör min utskrift på p3?

Borde jag inte då kunna skriva: p3.setName(fn, en); eller??

Jag får då komp fel den säger att den inte hittar variblerna fn och en fast dom är deklarerade som publik i den andra klassen??

 

 

[inlägget ändrat 2005-04-11 10:29:51 av jultomten]

Länk till kommentar
Dela på andra webbplatser

Då när jag skriver ut så gör jag följande:

 

System.out.println(p1);

Precis, du skriver alltså inte System.out.println(String p1), varför tror du då att du när du ropar på en annan metod (i det här fallet p3.setName()) ska skriva p3.setName(String fn, String en) och inte bara setName(fn, en)?

 

Bägge är metodanrop. Vad det är för typ på argumenten har du redan talat om när du gjorde klassen.

 

Länk till kommentar
Dela på andra webbplatser

Jo jag vet blev lite förvirrad bara när det började strula ber om ursäkt.

Åter till mitt problem varför vill den inte känna till de publika variablerna?

Jag får följande fel meddelande: cannot find symbol varible fn

Men jag har gjort följande i en annan klass:

 

public String fn;

 

[inlägget ändrat 2005-04-11 10:49:41 av jultomten]

Länk till kommentar
Dela på andra webbplatser

Om det är en static-variabel, annars skriver man instansnamnet (om man är i en annan instans än den där attributet (variabeln) är deklarerad.

 

Länk till kommentar
Dela på andra webbplatser

Hm...

Nu har jag skrivit så här:

 

p3.setName(fn, en);

p4.setName(fn, en);

 

Här är min metod:

 

public void setName(String fn, String en) {

 

fname = "Sven";

ename = "Persson";

fname = "Per";

ename = "Svensson";

}

 

Hur skall jag göra för att den skall skriva ut båda namnen och inte bara det sista?

 

 

 

Länk till kommentar
Dela på andra webbplatser

Ehh, vad är det du försöker göra?

 

Det borde rimligen se utt enligt detta mönster:

 

public void setName(String firstName, String surName){
this.firstName = firstName;
this.surName = surName;
}

 

variabel1 = variable2;

innebär att variabel1 får samma värde (nja, nästan alltid sant) som variabel2.

this.variabel1 innebär att variabel1 ska hämtas från aktuella klassens variabler.

 

Varje variabel kan bara lagra en instans av ett värde. När du tilldelar en variabel ett nytt värde skriver du över det föregående värdet.

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...