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

Informatiker Board » Themengebiete » Praktische Informatik » Methothen und static » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 2 Beiträge
eulerscheZahl

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);
	}
}
gg_ Methothen und static

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);

}


}