Just nu i M3-nätverket
Jump to content

parametrar i java


pcdoktor

Recommended Posts

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???

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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

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

eller hur?

 

 

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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?

 

 

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...