pcdoktor Posted April 11, 2005 Share Posted April 11, 2005 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 More sharing options...
fhe Posted April 11, 2005 Share Posted April 11, 2005 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 More sharing options...
pcdoktor Posted April 11, 2005 Author Share Posted April 11, 2005 Hur skall jag då anropa metoden setName? Link to comment Share on other sites More sharing options...
fhe Posted April 11, 2005 Share Posted April 11, 2005 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 More sharing options...
Monshi Posted April 11, 2005 Share Posted April 11, 2005 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 More sharing options...
pcdoktor Posted April 11, 2005 Author Share Posted April 11, 2005 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 More sharing options...
fhe Posted April 11, 2005 Share Posted April 11, 2005 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 More sharing options...
pcdoktor Posted April 11, 2005 Author Share Posted April 11, 2005 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 More sharing options...
pcdoktor Posted April 11, 2005 Author Share Posted April 11, 2005 Behöver man skriva klass namnet framför variblen, för att den skall hitta den? Link to comment Share on other sites More sharing options...
fhe Posted April 11, 2005 Share Posted April 11, 2005 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 More sharing options...
pcdoktor Posted April 11, 2005 Author Share Posted April 11, 2005 Ok, det verkar som jag har fått ordning på programmet nu. Tack för hjälpen! Link to comment Share on other sites More sharing options...
pcdoktor Posted April 11, 2005 Author Share Posted April 11, 2005 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 More sharing options...
Monshi Posted April 11, 2005 Share Posted April 11, 2005 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.