Java, programmieren

Hi, ich würde mich freuen, wenn ihr mir bei der folgenden Aufgabe helfen könntet:

Schreiben Sie eine Applikation Geometrie, die die Fläche und den Umfang eines Kreises berechnet. Die Fläche soll unter Verwendung der Methode
berechneFlaeche(Übergabeparameter) und der Umfang unter Verwendung der Methode berechneUmfang(Übergabeparameter) berechnet werden. Lesen Sie den Radius des Kreises mit JOptionPane ein. Geben Sie die Ergebnisse der Berechnungen aus. Deklarieren Sie ihre Variablen als lokale Attribute.
Stellen Sie sicher, dass für den Radius keine negativen Zahlen eingegeben werden können bzw. negative Werte wie positive Werte behandelt werden.

Außer die Methoden, mit denen ich jetzt zum ersten mal konfrotiert werde, habe ich bereits alles fertig.

public static void main(String[] args) {

String eingabe;
double radius;
double flaeche;
double umfang;

eingabe = JOptionPane.showInputDialog(„Bitte geben Sie den Radius des Kreises ein“);
radius = Double.parseDouble(eingabe);
if (radius

Hallo,

und wo ist nun deine Frage?

Willst du wissen was Methoden sind? Oder wie man eine GUI erstellt?

Stell eine Frage zu einem Problem und dann helf ich dir gerne aber deine Hausaufgaben erledige ich nicht

Gruß

Das möchte ich ja auch nicht :smile:
Ich würde gerne wissen wie man eine Methode
berechneFlaeche(Übergabeparameter) und berechneUmfang(Übergabeparameter) erstellt.

ich wollte das erst mittels getberechneFlaeche (double Flaeche) machen, doch bekam ich dabei eine Fehlermeldung

Hi,

du musst die besagten Methoden (berechneFlaeche und berechneUmfang) selber schreiben und die dann aufrufen und deren Ergebnis ausgeben.

Mfg Markus

hallo,

na das ist doch mal ne Frage :smile:

was für eine Fehlermeldung bekommst du denn? Es gibt viele in der Welt von Java…

Wenn du magst kannst du mir auch mal deinen kompletten Sourcecode posten, dann guck ich mir das ganze mal genauer an und kompiliere das selbst.

Gruß

Für die Fläche habe ich das jetzt versucht, ist jedoch fehlerhaft.

public class Main {

public static void main(String[] args) {

String eingabe;
double radius;
double flaeche;
double umfang;

eingabe = JOptionPane.showInputDialog(„Bitte geben Sie den Radius des Kreises ein“);
radius = Double.parseDouble(eingabe);
if (radius

public class Main {

public static void main(String[] args) {

String eingabe;
double radius;
double flaeche;
double umfang;

eingabe = JOptionPane.showInputDialog(„Bitte geben Sie den Radius des Kreises ein“);
radius = Double.parseDouble(eingabe);
if (radius

Hi,

1.) Musst du JOptionPane importieren
2.) Musst du die Methoden außerhalb der main Methode definieren
3.) Musst du dann den Wert (in dem Fall Radius übergeben) und den Rückgabewert in einer Variable speichern (oder direkt ausgeben)
4.) Muss deine Methode static sein, wenn du sie aus der (statischen) main aufrufen willst, ohne ein Objekt zu erzeugen.

Das sieht dann so aus:

import javax.swing.JOptionPane;

public class Main {

public static void main(String[] args) {

String eingabe;
double radius;
double flaeche;
double umfang;

eingabe = JOptionPane.showInputDialog(„Bitte geben Sie den Radius des Kreises ein“);
radius = Double.parseDouble(eingabe);
if (radius

Ok also der Fehler liegt hier:
du deklarierst eine Methode in einer Methode. Das darfst du nicht.

verschiebe deine berechneFlaeche() Methode eine klammer nach unten, sodass sie außerhalb der MainMethode ist und mach sie static. In einer static Methode darf man nur auf static Methoden (und Variablen) zugreifen.

sprich deine berechneFlaeche Methode würde dann so aussehen:

public static double berechneFlaeche();

Oder du erzeugst ein neues Object deiner Klasse Main in der main Methode.

Das ganze würde dann so aussehen:

Main main = new Main();
main.berechneFlaeche();

So nun hast du noch ein Problem:

Deine Methode berechneFlaeche weiss nicht woher es die Variable radius bekommt, da diese in der Main Methode deklariert wurde.

Du hast jetzt 2 optionen:

1: du deklarierst die Variable global für die Klasse (ausserhalb deiner Main)

2: du übergibst deiner berechneFlaeche Methode einen double.

das ganze sieht dann so aus:

public static double berechneFlaeche(double radius);

und aufrufen tust du die Methode dann in der Main mit:

public static void main(String[] args){

double radius;

//hier füllst du die Variable
berechneFlaeche(radius);

Wenn was unklar ist einfach fragen :smile:

Gruß

Also für mich hast du das sehr verständlich erklärt :smile: vielen Dank, ich werd jetzt mal mein Glück versuchen

Hi

Ich hab dir mal alles fertig geschrieben! Die Methoden habe ich static gemacht,
dann brauchst du kein Objekt erzeugen.

package rechner;

import javax.swing.JOptionPane;

public class Rechner {

public static double berechneFlaeche(double r)
{
return Math.pow(r, 2) * Math.PI;
}

public static double berechneUmfang(double r)
{
return 2 * r * Math.PI;
}

public static void main(String[] args)
{
String eingabe;
double radius;
double flaeche;
double umfang;

eingabe = JOptionPane.showInputDialog(„Bitte geben Sie den Radius des
Kreises ein“);
radius = Double.parseDouble(eingabe.replace(",", „.“));
if (radius

Dankeschön, so ähnlich hab ich das mit eurer Hilfe auch hinbekommen :smile:

Alles klar viel Erfolg,

als Tipp für die Ausgabe kannst du einfach die Methode aufrufen und in deine Ausgabe übergeben.

Beispielsweise:

System.out.println(berechneFlaeche(radius));

Das wäre eine Konsolenausgabe.

Du musst das Ergebnis also nicht in einer Variable einlesen. Das ganze macht natürlich nur Sinn wenn du das Ergebnis nicht weiter verwenden willst als für die Ausgabe.

Gruß

/*
Hallo, schon mal ganz gut. Für diese Aufgabe sollst Du vermutlich die Berechnung
in eine Methode legen, also in etwa so (hier habe ich gleich noch die Klasse drum
herum gebaut, wie beschrieben soll das Ding ja Geometrie heissen) Zudem habe ich
das Beispiel schnell als Konsolenapplilaktion ausprobiert, Du musst nun wieder das
entsprechende einbauen für JOptionPane. Ich hoffe, die Berechnung ist korrekt :wink:
*/

import java.io.*;
import java.util.*;

public class Geometrie
{

public static double berechneFlaeche(double _radius)
{
return Math.PI * _radius * _radius;
}

public static double berechneUmfang(double _radius)
{
return 2 * Math.PI * _radius;
}

public static void main(String[] args) {

BufferedReader tastatur = new BufferedReader( new
InputStreamReader(System.in));

String eingabe;
double radius;
double flaeche;
double umfang;

// eingabe = JOptionPane.showInputDialog(„Bitte geben Sie den Radius des
Kreises ein“);

try {
System.out.println(„Bitte geben Sie den Radius des Kreises ein“);
eingabe = tastatur.readLine();

radius = Double.parseDouble(eingabe);
if (radius

Hi, Du.

Als erstes solltest du dir mal Wissen über Funktionen in Java anlesen. Google hilft da z.B. optimal.

Ansonsten gehts wohl so:
import javax.swing.JOptionPane;

public class Geometrie
{
public static void main(String[] args) {

String eingabe;
double radius;

eingabe = JOptionPane.showInputDialog(„Bitte geben Sie den Radius des Kreises ein“);
radius = Double.parseDouble(eingabe);
radius = (radius

Hi, danke für die Lösung. Ich habe es jetzt hinbekommen :smile:

Die Fläche soll unter Verwendung der Methode
berechneFlaeche(Übergabeparameter) und der Umfang unter
Verwendung der Methode berechneUmfang(Übergabeparameter)
berechnet werden.

Außer die Methoden, mit denen ich jetzt zum ersten mal
konfrotiert werde, habe ich bereits alles fertig.

Ich mache ja ungern die Hausaufgaben anderer Leute, aber so als kleiner Tipp: main() ist auch eine Methode. Nämlich eine statische (=Klassen-)Methode ohne Rückgabewert (void) mit dem Argument/Parameter args vom Typ String[].