# math und abs()



## Destiny1985 (3. Jun 2005)

Eine Übungsaufgabe lautet wie folgt:


```
Schreiben Sie ein Programm, das zwei Point-Objekte (pt1 mit den x- und 
y-Werten 10, 10 und pt2 mit den x- und y-Werten 30, 30) erzeugt.

Die Point-Objekte reräsentieren die Eckpunkte eines Rechtecks. 
Berechnen Sie die Fläche dieses Rechtecks. Verwenden Sie zum Ermitteln der 
Breite und Höhe die Klassenmethode abs() der Klasse Math.

Die Ausgabe des Programms sieht folgendermaßen aus.

Die Flaeche betraegt: 400
```

Ich hab nach der Methode abs() in der API geschaut und sie so eingebaut, wie ich mir denke das es stimmt...allerdings kann das nicht so doll sein, es geht nämlich nicht  Der bisherige Code:


```
import java.awt.*;
import java.math.*;

class PointFlaeche
{
  public static void main(String[] args)
  {
    Point pt1 = new Point(10, 10);
    Point pt2 = new Point(30, 30);
    
    int breite = pt1.abs(pt2);
  }
}
```

Der Fehler lautet


```
Cannot resolve Symbol
method abs (java.awt.point)
....bla....
```

An sich verstehe ich den Fehler, er sucht die Methode abs() im Package Point und findet es da natürlich nicht...wie mache ich es, das es funktioniert ?

mfg


----------



## Destiny1985 (3. Jun 2005)

Hm eigentlich ist das ganze


```
int breite = pt1.abs(pt2);
```

falsch...kann doch so gar net gehen das ich da was richtiges rausbekomm.... :/


----------



## Sky (3. Jun 2005)

Wie in der Aufgabe schon steht: abs() ist eine Klassenmethode der Klasse Math. (und keine Methode der Klasse Point)


----------



## Destiny1985 (3. Jun 2005)

Ja die habe ich doch auch als import drin...ich verstehe nur nicht wie ich die jetzt korrekt einsetze!


----------



## Sky (3. Jun 2005)

Ein Blick in die API verrät: 
	
	
	
	





```
public static int abs(int a)
```
Also: Klassen-Methode = static-Methode in einer Klasse... Du musst einfach nur die statische Methode aufrufen!


----------



## Destiny1985 (3. Jun 2005)

ich glaub mir isses zu früh -.- bekomm es nicht hin...

wärst du so gut mir den code mal zu schreiben, das ich mir das mal angucken kann ?

dank dir 

mfg


----------



## Matflasch (3. Jun 2005)

Math.abs(x)



Mfg, Matflasch


----------



## Sky (3. Jun 2005)

```
Math.abs(<deinWert>)
```


----------



## Destiny1985 (3. Jun 2005)

achso 

aber richtig durchsteigen tue ich nicht bei der sache !

wie kann ich das in verbindung mit meinem beiden punkten einsetzen, um die höhe und breite des rechtecks herauszubekommen ??


----------



## Matflasch (3. Jun 2005)

Du könntest den einen X-Wert vom anderen abziehen, dann hast du die gerade a. Das selbe kannst du für b mit dem Y-Wert machen.
Dein Problem ist, dass bei variabler Eingabe später auch negative Werte rauskommen können, weshalb du Math.abs() verwenden solltest 

Ich habs hier in 5 Zeilen 

Mfg, Matflasch


----------



## Destiny1985 (3. Jun 2005)

Aber wie geht das mit Math.abs() in Verbindung mit den 2 Point-Objekten ??


----------



## Matflasch (3. Jun 2005)

```
Math.abs(pt1.x - pt2.x)
```


----------



## Destiny1985 (3. Jun 2005)

DAs wars  danke schön


----------



## Matflasch (3. Jun 2005)

Dürfen wir das Ergebnis sehen?   
(hilft evtl. einigen, die später das Forum durchsuchen oder so)

Mfg, Matflasch


----------



## Destiny1985 (3. Jun 2005)

Habts ja nicht anders gewollt


```
import java.awt.*;
import java.math.*;

class PointFlaeche
{
  public static void main(String[] args)
  {
    Point pt1 = new Point(10, 10);
    Point pt2 = new Point(30, 30);
      
    int breite = Math.abs(pt1.x - pt2.x);
    int hoehe =  Math.abs(pt1.y - pt2.y);
    
    int flaecheninhalt = breite * hoehe;
    
    System.out.println("Der Flaecheninhalt des Rechtecks betraegt: " + flaecheninhalt);
  }
}
```

Ist eigentlich nix besonderes, kam nur mit dem Math.abs nicht klar


----------

