11. maj 2002 - 18:12Der er
4 kommentarer og 1 løsning
Modificere et objekt fra en anden klasse.
Hej, jeg har et problem jeg gerne vil have løst. jeg har en klasse med denne metode:
public boolean modify(Point p){ double x = p.getX(); double y = p.getY(); double xFinal = Math.pow(x, 2); double yFinal = Math.pow(y, 2);
p.setX(xFinal); p.setY(yFinal);
return (xFinal > 2); }
Jeg kalder denne metode fra en anden klasse hvor jeg har oprettet et objekt convert. Her ser koden således ud:
public Point p = new Point(2,2); boolean mod = convert.modify(p);
Her ville jeg så gerne have at Point p nu havde værdien (4,4), men dette er ikke tilfældet, faktisk får den nogle gange værdien NaN som jo ikke er meningen. Hvordan kan man løse problemet?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Det hele ser umiddelbart rigtigt ud ... men det er det jo ikke :-)
Jeg har lige hurtigt strikket noget alla dit sammen og det virker fint .. her er 2 klasser ... og ingen problemer .. kig på dem .. håber det hjælper lidt ..
public class Point { private double x; private double y;
public Point( double x, double y ) { setX(x); setY(y); }
public void setX( double x ) { this.x = x; }
public void setY( double y ) { this.y = y; }
public double getX() { return x; }
public double getY() { return y; } }
public class TestPoint { public TestPoint() { Point p = new Point( 2, 2 ); boolean mod = modify( p );
System.out.println( mod ); }
public boolean modify( Point p ) { double x = p.getX(); double y = p.getY();
smok > hvordan kan det være mit ikke virker, jeg synes ikke jeg kan se nogle umiddelbare forskelle. Jeg kan nemlig også godt få dit til at virke, men ikke mit. soelvpil > jeg har selv lavet Point-klassen og den giver NaN, men ikke hele tiden, den er lidt inkonsistent.
jeg har fundet fejlen. Nogle gange returnere modify værdien NaN da der et andet sted bliver divideret med 0. Problemet er jo så med den kode, at Point p bliver ændret til at have en værdi NaN. Men da p er hentet fra et array bliver det jo ændret der og næste gang jeg kalder det giver det værdien NaN for x-koordinaten og returnerer derfor NaN når det kommer ind i modify. Så problemet er nu hvordan jeg henter en kopi af p første gang jeg henter den frem fra arrayet frem for at hente p og dermed ændre på p i arrayet. Giver det nogen mening det jeg lige har skrevet?
da smok ikke har lagt et svar og soelvpil har lagt en kommentar som et svar snupper jeg selv pointene. Tak for hjælpen.
Synes godt om
Ny brugerNybegynder
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.