# Probleme mit Geometrie-Aufgabe



## Capone (7. Okt 2004)

Hi Leute, 

mache jetzt seit einer Woche JAVA in der Schule und habe Folgende Aufgabe bekommen:


Übung

1. Schreiben Sie eine Klasse CKreis. Diese besitzt das Attribut radius und die Methoden getRadius (),  umfang () und flaeche ().



Die Benutzung der Klasse könnte so aussehen: 

CKreis k = new CKreis(4.0);                // Ausgabe:
System.out.println(k.getRadius);          // -> 4
System.out.println(k.flaeche());           // -> 50.26544
System.out.println(k.umfang());          // -> 25.13272



2. Sofern Ihre Klasse alle Tests bestanden hat, packen Sie sie in ein Package mit Namen Geometrie und importieren Sie sie dann in Ihr Hauptprogramm.

Ich habs ma versucht und hab volgendes raus bekommen  :


```
class CKreis {
	private double m_radius;
	
	CKreis(double radius){
	m_radius = radius;
	}
	
	void getRadius (double Radius){
		radius = Radius;
	}
	
	void umfang (double Umfang){
		Umfang = 2*radius;
	}
}
	
public static void main(String[]args){
	CKreis TEST = new CKreis(4.0);
	System.out.println((TEST.getRadius());
	System.out.println((TEST.umfang());
}
```
Leider hab ich wirklich keine Ahnung davon.
Für die Lösung und eine Erklärung wäre ich wirklich sehr sehr Dankbar.
 :bahnhof: 
MfG Nico

_edit deathbyaclown: Code tags_


----------



## thE_29 (7. Okt 2004)

ajo 
void = nix
int = integer
float = ....
mit return gibst du dann was zurück ( am ende der funktion)
natürlich muss das was du zurückgibst übereinstimmen mit der deklaration der funktion 
du musst schon was retournieren bei denen funktionen 


```
public int getRadius(){
return m_radius; 
}

public int Umfang(){
return 2*m_radius;
}
```

die fläche musst schon selber machen... lernen musss sein


----------



## Roar (7. Okt 2004)

und wo is nun das problem? du hast doch alles irchtig gemacht ( mach die methoden und den konstruktor mal public).
jetz musst du nur noch die methode fläche implementieren
den flächeninhalt bekommst du mit: 2*r*PI ( Math.PI ) 


und packagenamen werden kleingeschrieben, sag das dienem lehrer 

edit: ok doch nich alels richtich gemacht :-/
edit2: jetz erst 2. post von dir les


----------



## thE_29 (7. Okt 2004)

@roar: er hat ne getFunktion die void ist und nix zurückliefert, da ist schon was falsch


----------



## bygones (7. Okt 2004)

thE_29 hat gesagt.:
			
		

> @roar: er hat ne getFunktion die void ist und nix zurückliefert, da ist schon was falsch


oder er wollte *s*etRadius schreiben... die methode schaut mehr danach aus...


----------



## thE_29 (7. Okt 2004)

> Übung
> 
> 1. Schreiben Sie eine Klasse CKreis. Diese besitzt das Attribut radius und die Methoden getRadius (), umfang () und flaeche ().



gleich 2mal verschreiben, wäre schon ein dummer Zufall


----------



## Capone (7. Okt 2004)

Danke Erst ma..

Die Funktion sieht jetzt so aus:
----------------------------------------------------------------------------------------------------
class CKreis {
	private double m_radius;

	CKreis(double radius){
	m_radius = radius;
	}

	public int getRadius(){
	return m_radius;
	}

	public int Umfang(){
	return 2*m_radius;
	}
}


public static void main(String[]args){
	CKreis TEST = new CKreis(4.0);
	System.out.println((TEST.getRadius());
	System.out.println((TEST.umfang());
}------------------------------------------------------------------------------------------------------
Jedoch kommt folgender Fehler:
------------------------------------------------------------------------------------------------------
C:\Programieren\Java\Java Test Files\CKreis.java:19: 'class' or 'interface' expected
public static void main(String[]args){
              ^
1 error

Process completed.


Hat noch jemand einen Rat.
Ich kappier da irgendwie nix  :autsch:


----------



## bygones (7. Okt 2004)

1. bitte Code Tag verwenden - nicht grün machen !!
2. mach die Klasse public in ein File namens CKreis.java und schließe die Klammern der Klasse erst nach der main methode.
3. schau in dem Forum "Bücher, Links und Tutorien" (oder so  ) nach, da gibt es viele Anfängerbücher


----------



## P3AC3MAK3R (7. Okt 2004)

> Bitte helft mir bei der Lösung


Bitte beim nächsten mal einen präziseren Titel wählen.



> Aussagekräftige Titel verwenden! Es nervt nur, wenn ihr z. B. schreibt "Suche Hilfe". Eine gute kurze Beschreibung eures Problems hilft euch viel eher weiter.


Quelle: http://www.java-forum.org/de/boardregeln.php

Verschoben: Aufgaben und Gesuche


----------



## bygones (7. Okt 2004)

@P3ac3mak3r:
sorry - das Verschieben versteh ich leider nicht... er macht die Aufgabe und hat Probleme dabei - das ist Anfängerbereich...


----------



## Capone (7. Okt 2004)

VIelen Dank! Werd ich mich halt selber um mein zeug kümmern.
Wenn ich keine Ahnung von sowas habe wie soll ich dann bitte ein Präzisen Titel vergeben.
Naja meine Meinung.


----------



## Capone (7. Okt 2004)

```
class CKreis {
	private double m_radius;
	
	CKreis(double radius){
	m_radius = radius;
	}
	
	public int getRadius(){
	return m_radius;
	}
	
	public int umfang(){
	return 2*m_radius;
	}
	
	public double Fläche(){
	return 2*r*PI ( Math.PI ); 
	}


	
public static void main(String[]args){
	CKreis TEST = new CKreis(4.0);
	System.out.println((TEST.getRadius());
	System.out.println((TEST.umfang());
	System.out.println((TEST.Fläche());
	}
}


Fehlermeldung:

C:\Dokumente und Einstellungen\Nico\Desktop\Schule\Programieren\Java\Java Test Files\CKreis.java:24: ')' expected
        System.out.println((TEST.getRadius());
                                             ^
C:\Dokumente und Einstellungen\Nico\Desktop\Schule\Programieren\Java\Java Test Files\CKreis.java:25: ')' expected
        System.out.println((TEST.umfang());
                                          ^
C:\Dokumente und Einstellungen\Nico\Desktop\Schule\Programieren\Java\Java Test Files\CKreis.java:26: ')' expected
        System.out.println((TEST.Fläche());
                                          ^
3 errors

Process completed.

Is das nur ein klammerfehler?


Mfg Capone
```


----------



## Manfred (7. Okt 2004)

```
public class CKreis
{
    private double radius;

    public CKreis (double radius)
    {
        this.radius = radius;
    }

    public double getRadius()
    {
        return radius;
    }

    public double getFlaeche()
    {
        return (Math.pow(radius,2) * Math.PI);
    }

    public double getUmfang()
    {
        return (2 * Math.PI * radius);
    }

    public static void main(String[] args)
    { 
           CKreis TEST = new CKreis(4.0); 
           System.out.println(TEST.getRadius()); 
           System.out.println(TEST.getUmfang()); 
           System.out.println(TEST.getFlaeche()); 
    } 
}
```


----------



## Capone (7. Okt 2004)

```
class CKreis {
	private double m_radius;
	
	CKreis(double radius){
	m_radius = radius;
	}
	
	public double getRadius(){
	return m_radius;
	}
	
	public double umfang(){
	return 2*m_radius;
	}
	
	public double Fläche(){
	return 2*m_radius*Math.PI; 
	}


	
public static void main(String[]args){
	CKreis TEST = new CKreis(4.0);
	System.out.println(TEST.getRadius());
	System.out.println(TEST.umfang());
	System.out.println(TEST.Fläche());
	}
}
```

So gehts auch aber trotzdem vielen Dank für eure Hilfe.


----------



## Manfred (7. Okt 2004)

Seit wann ist der Kreisumfang 2*radius??
und die Fläche 2*radius*PI ???


----------



## Capone (7. Okt 2004)

```
class CKreis {
	private double m_radius;
	
	CKreis(double radius){
	m_radius = radius;
	}
	
	public double getRadius(){
	return m_radius;
	}
	
	public double Umfang(){
	return (2 * Math.PI * m_radius); 
	}
	
	public double Fläche(){
	return (Math.pow(m_radius,2) * Math.PI);  
	}


	
public static void main(String[]args){
	CKreis TEST = new CKreis(10.0);
	System.out.println("----------------------------------------");
	System.out.println("Der Radius beträgt :"+TEST.getRadius());
	System.out.println("----------------------------------------");
	System.out.println("Der Umfang beträgt :"+TEST.Umfang());
	System.out.println("----------------------------------------");
	System.out.println("Die Fläche beträgt :"+TEST.Fläche());
	System.out.println("----------------------------------------");
	}
}


[b]So werde ichs wohl meinem Lehrer in die Hand drücken.
Nochmals vielen dank für eure schnelle Hilfe!! :lol: [/b]
```


----------



## Manfred (7. Okt 2004)

Das mit dem Package würde noch fehlen!

Dies deklariert man immer ganz am Anfang der Klasse mittels:

package <name>;

z.B. package CKreis;


und mit 
import CKreis;

würde man dann dieses Package in andere Klassen importieren. Man muss nur aufpassen, dass der "Pfad" stimmt, da können dir aber andere sicher besser weiterhelfen


----------



## Capone (7. Okt 2004)

```
package CKreis;
class CKreis {
	private double m_radius;
	
	CKreis(double radius){
	m_radius = radius;
	}
	
	public double getRadius(){
	return m_radius;
	}
	
	public double Umfang(){
	return (2 * Math.PI * m_radius); 
	}
	
	public double Fläche(){
	return (Math.pow(m_radius,2) * Math.PI);  
	}


	
public static void main(String[]args){
	CKreis TEST = new CKreis(10.0);
	System.out.println("----------------------------------------");
	System.out.println("Der Radius beträgt :"+TEST.getRadius());
	System.out.println("----------------------------------------");
	System.out.println("Der Umfang beträgt :"+TEST.Umfang());
	System.out.println("----------------------------------------");
	System.out.println("Die Fläche beträgt :"+TEST.Fläche());
	System.out.println("----------------------------------------");
	}
}
```


Ist das<dann so richtig? Oder muss des mit dem package wo anderst hin, als der compailer bringt mir kein Fehler.

PS.: Wäre net wenn mir einer sagen könnte wie ich das package benutzen kann.

MfG
Capone


----------



## dark_red (7. Okt 2004)

Packages werden in der Regel klein geschrieben. Für dich ists zwar nicht interessant, aber falls du mal eine grosse Blibliothek schreibst, wird die Packagestruktur der URL deiner Lib angeglichen (zB bei deinelib.deinedomain.com währe die Packagestruktur com.deinedomain.deinelib), damit es zu keinen Überlappungen der Namen kommen kann. 

Wichtig ist auch, dass die Packagestruktur auf der Festplatte wiedergespiegelt werden muss. Wenn du ein Package kreis hast, muss deine .java Datei im Ordner kreis liegen und der Hauptordner deines Projektes währe dann der Ordner, in dem "kreis" liegt.


----------

