Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Methothen und static » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Methothen und static
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Methothen und static Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo allerseits,

ich habe versucht ein Programm zu schreiben die die Fläche eines Kreise brechnet.
Es wird mit dem Scanner der Radius gegeben. Mein Problem ist das Programm zeigt mir eine Fehlermeldung die da lautet das der Attribut radius als static deklariert werden muss. Warum muss es denn als static deklariert werden.
Ich verstehe es noch nicht so ganz genau was der unterschied zwischen Instanzmethode und Klassenmethode?

für jede hilfreiche Antwort wäre ich sehr dankbar smile















Meine Ideen:
import java.util.Scanner;


public class flacheKreis {

static int radius;
double flache;

public static void main(String[] args) {

menue();

flacheKreis f = new flacheKreis();
f.berechneFlache(radius);


}

public static void menue(){

Scanner scan = new Scanner(System.in);
System.out.println("Geben Sie ein Radius :");
radius = scan.nextInt();

System.out.println("Der Radius ist :"+ radius);

}

public void berechneFlache(int radius){

flache = (double) (radius * radius * Math.PI);
System.out.println("Die Fläche beträgt: " + flache);

}


}
02.06.2015 19:09 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Eine statische Variable wird von allen Instanzen der Klasse geteilt. Das ist z.B. für einen Zähler sinnvoll, der angibt, wie viele Instanzen existieren.
In einer statischen Methode kannst du logischerweise nur auf statische Variablen zugreifen, da die Methode ja keiner Instanz zugeordnet ist.

Du kannst also die Methode menue nicht-static machen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
public class FlacheKreis { //Klassennamen schreibt man groß

	int radius;
	double flache;

	public static void main(String[] args) {
		flacheKreis f = new flacheKreis();
		f.menue();
		f.berechneFlache();
	}

	public void menue() {
		Scanner scan = new Scanner(System.in);
		System.out.println("Geben Sie ein Radius :");
		radius = scan.nextInt();
		System.out.println("Der Radius ist :" + radius);
	}

	public void berechneFlache() {
		flache = (double) (radius * radius * Math.PI);
		System.out.println("Die Fläche beträgt: " + flache);
	}
}


__________________
Syntax Highlighting fürs Board (Link)
02.06.2015 20:38 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Methothen und static