Verstehe Programm nicht

Status
Nicht offen für weitere Antworten.
7

777

Gast
Hallo Leute,
Ich lerne zur Zeit in der Schule Java und habe auch schon so ziemlich viel verstanden. Nur letzte Stunde haben wir etwas total komisches gemacht. Ich selber habe mir dann später noch einmal das Programm, was unser Lehrer uns gegen Ende der Stunde gab und was wir dann "verstehen" sollten mal angesehen und ich verstehe nicht mehr so viel.
Hinter die Sachen, die ich verstehe habe ich Kommentare geschrieben... das Programm war eigentlich unkommentiert. Unten die Fragen. Hier erst einmal das Programm:

Code:
//Programm zur Kreisberechnung

public class MyClass
{
    float A, r;                                                             //Declaration der Variablen für Fläche und Radius                               
    final static float  pi = 3.14159265f;   

 //Declaration und Zuordnung der Variable Pi- hier wird static verwendet, weil Pi sowieso immer gleich bleiben wird!

    float flaeche (float radius)                                   
       {
        r=radius;
        return(r*r*pi);
       }
    public static void main (String args[])                    //Mainfunktion wird aufgerufen
      {
        MyClass m = new MyClass();                           //Instanz m wird gebildet
        m.r = 100;                                                     //Dem Radius aus der Instanz r wird der Wert 100 zugeordnet
        m.A= m.r*m.r*pi;                                           //Die Fläche wird nun hier mit pi und dem Radius in "A" gesichert
        System.out.println("Mit r = 100  -> A = " + m.A);  //Ausgabe der Fläche
        float ergebnis = m.flaeche(22.5f);                          
        System.out.println("Mit r = 22,5 -> A = "+ ergebnis );     
      } 
}


So und jetzt meine tollen Fragen:

1. Was bringt das "final" vor den Variablen oben
2. Es gibt oben eine Funktion "flaeche", die dazu dient mit pi und "r" den Radius zu berechnen. Meine Meinung nach bringt diese Funktion überhaupt nichts. Man könnte die Rechnung doch auch unten reinschreiben :-O Oder wollte uns unser Lehrer einfach ein Beispiel für Funktionen geben???

3. Was bringt der Rückgabewert "radius", der Funktion "Flaeche" in Klammern. Meiner Meinung nach ist er überflüssig, da er im ganzen Programm nie wieder vorkommt- ohne ihn geht es komischerweise nicht :-O

Ich bin noch Anfänger und gerade leicht am verzweifeln.
Würde mich echt freuen wenn mir auch am Sonntag jemand antworten könnte....

Gruß
David

PS: :) :) :D :D :( :( :) :)
 

lin

Top Contributor
1.
http://de.wikipedia.org/wiki/Java-Syntax hat gesagt.:
final kann vor allen Membern außer Konstruktoren stehen und bedeutet, dass der betreffende Member nicht mehr verändert werden darf. Finale Variablen sind ähnlich wie Konstanten, finale Methoden dürfen von Subklassen nicht überschrieben werden und von finalen Klassen darf man erst gar keine Subklassen bilden. Zugriffe auf finale Variablen, deren Wert dem Compiler bekannt ist, dürfen vom Compiler durch den Wert der Variable ersetzt werden. Aufrufe finaler Methoden dürfen vom Compiler durch eingebundenen Code (Inlining) ersetzt werden. Private Methoden sind automatisch final.

2. Naja, hier bringt sie nicht besonders viel, aber wenn du das Programm erweiterst, kannst du die Funktion z.B. bei der Berechnung des Volumens eines Kegels oder eines Zylinders wiederverwenden.

3.
Code:
 float flaeche (float radius)
radius hier ist nicht der Rückgabewert, sondern ein Argument, das diese Methode erwartet. In der main Methode wird sie dann auch mit einem float Wert als Argument aufgerufen:
Code:
m.flaeche(22.5f);
 
7

777

Gast
Nur ich verstehe nicht, warum zum Beispiel diese Rechnung hier zwei Mal vorkommt:

return(r*r*pi);

m.A= m.r*m.r*pi;


Beides Mal wird r²pi gerechnet... doch warum hat unser Lehrer nicht einfach zwei Mal die funktion "flaeche" aufgerufen.



Sieht der Compiler die folgende Zeile:

float ergebnis = m.flaeche(22.5f);

So denkt er sich also- ahha... der Wert in Klammern steht für "Radius", der funktion flaeche. Und dann springt er in flaeche und ordnet für Radius 22.5 ein. Dann wird r radius gleichgestellt und r ist also dann auch 22.5... nun wird die Rechnung gemacht und der Wert wird nun durch "return" zürückgegeben.
Stimmt so???

Okay
Danke für die Antwort
David
 

Zebani

Mitglied
Hallo,

1. Was bringt das "final" vor den Variablen oben
Damit deklariert man eine Kanstante. Den Wert dieser Variable kann man nicht mehr ändern.

2. Es gibt oben eine Funktion "flaeche", die dazu dient mit pi und "r" den Radius zu berechnen. Meine Meinung nach bringt diese Funktion überhaupt nichts. Man könnte die Rechnung doch auch unten reinschreiben :-O Oder wollte uns unser Lehrer einfach ein Beispiel für Funktionen geben???
Ich glaube, der Lehrer wollte nur herausfinden, ob ihr die Zigriffrechte der Kalassenvariablen verstanden haben. Da alle Variablen "public" deklariert sind, kann man in main funktion auf sie einfach mit ihren Namen zugreifen. Hätte man diese Variable z.B. "private" deklariert, dann sollte man entsprechende get/set Methoden schreiben, damit man auf diese Varibalen zugreifen kann.

3. Was bringt der Rückgabewert "radius", der Funktion "Flaeche" in Klammern. Meiner Meinung nach ist er überflüssig, da er im ganzen Programm nie wieder vorkommt- ohne ihn geht es komischerweise nicht :-O
Ich habe nicht verstanden, was du meinst : )

Viel Glück
 
7

777

Gast
Zur dritten Frage:

Die Frage hat sich geklärt bis auf meine Antwort oben:


Sieht der Compiler die folgende Zeile:

float ergebnis = m.flaeche(22.5f);

So denkt er sich also- ahha... der Wert in Klammern steht für "Radius", der funktion flaeche. Und dann springt er in flaeche und ordnet für Radius 22.5 ein. Dann wird r radius gleichgestellt und r ist also dann auch 22.5... nun wird die Rechnung gemacht und der Wert wird nun durch "return" zürückgegeben.
Stimmt so???
 
7

777

Gast
Cool :cool:
Danke für eure Hilfe!!!
Cooles Forum hier... echt mal... ne Frage für die mein Lehrer 10 Stunden gebraucht hätte zu antworten bekomme ich hier in 5 mins gelöst!!! :) :) :)
David
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Shopping Cart Programm. Verstehe einige Zusammenhänge nicht Java Basics - Anfänger-Themen 1
M Verstehe das Programm(Quellcode) nicht!! Java Basics - Anfänger-Themen 12
T Brauche Hilfe um ein Programm zu verstehe Java Basics - Anfänger-Themen 4
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
nbergmann x /= n : Verstehe ich nicht. Java Basics - Anfänger-Themen 24
S Schulaufgabe - verstehe leider die Aufgabe nicht Java Basics - Anfänger-Themen 4
ZH1896ZH Verstehe verschieden Scanner und hasNext() nicht ganz Java Basics - Anfänger-Themen 2
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
K Erste Schritte Ich verstehe das Summenprogramm nicht Java Basics - Anfänger-Themen 10
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
Y Erste Schritte Ich verstehe this. nicht so richtig Java Basics - Anfänger-Themen 5
DaCrazyJavaExpert Methoden Verstehe Feheler nicht! Java Basics - Anfänger-Themen 7
Henri ich verstehe gerade nicht die Methode Java Basics - Anfänger-Themen 6
dave253 Ich verstehe folgenden Code nicht.. Java Basics - Anfänger-Themen 12
V Verstehe die Lösung einer Aufgabe von Grunkurs-Java nicht. Java Basics - Anfänger-Themen 11
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
J Verstehe meine HashSet Ausgabe nicht Java Basics - Anfänger-Themen 5
P Verstehe Lösung einer Aufgabe von "Grundkurs-Java" nicht Java Basics - Anfänger-Themen 5
O Ich verstehe nicht, was Eclipse von mir will Java Basics - Anfänger-Themen 10
G Methoden Verstehe nicht was in der Methode gemacht wird? Java Basics - Anfänger-Themen 5
B Verstehe ZufallInt = (int) (Math.random() * 5 + 1); nicht Java Basics - Anfänger-Themen 9
J Rekursiver Horner-Schema-Algorithmus - Verstehe ich ihn richtig? Java Basics - Anfänger-Themen 2
F verstehe diese Variable nicht... Java Basics - Anfänger-Themen 4
A Codezeile die ich nicht verstehe Java Basics - Anfänger-Themen 7
Pentalon Ein Aufruf den ich nicht verstehe Java Basics - Anfänger-Themen 11
V Verstehe die Logik nicht ... Java Basics - Anfänger-Themen 30
C rekursive Methode verstehe nicht! Java Basics - Anfänger-Themen 3
B verstehe methode nicht methode Java Basics - Anfänger-Themen 2
B Erste Schritte Verstehe das nicht Java Basics - Anfänger-Themen 3
C verstehe get und set nicht Java Basics - Anfänger-Themen 3
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
T ich verstehe array nicht! Java Basics - Anfänger-Themen 11
P for Schleife mit break, verstehe die Ausgabe nicht Java Basics - Anfänger-Themen 6
A Verstehe readLine()-Funktion nicht Java Basics - Anfänger-Themen 3
A Verstehe das GUI nicht! Java Basics - Anfänger-Themen 7
D Verstehe Zusammenhang nicht- Und ihr? Java Basics - Anfänger-Themen 4
M THREADS - Ich verstehe es nicht Java Basics - Anfänger-Themen 10
T Verstehe Bufferreader prinzip nicht Java Basics - Anfänger-Themen 3
E I-JVM verstehe ich das richtig (bytecode aufgabe) Java Basics - Anfänger-Themen 2
M Verstehe Aufgabe nicht, wie kann man schleifen einbauen? Java Basics - Anfänger-Themen 5
N Verstehe Step10 bei jME Eclipsetutorial nicht Java Basics - Anfänger-Themen 4
L Verstehe den Wert nicht! If-Anweisung Java Basics - Anfänger-Themen 5
N Verstehe diese Aufgabe nicht! Java Basics - Anfänger-Themen 16
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
S Finde den Fehler nicht/ verstehe Anweisung nicht Java Basics - Anfänger-Themen 12
K Ich verstehe switch einfach nicht Java Basics - Anfänger-Themen 4
C Verstehe Code-Teil nicht. Java Basics - Anfänger-Themen 2
S Ich verstehe diese Methode nicht! Java Basics - Anfänger-Themen 6
G Verstehe das nicht. bitte um hilfe Java Basics - Anfänger-Themen 13
R Thread startet nicht, verstehe nicht warum Java Basics - Anfänger-Themen 2
R Verstehe die Ausgabe von folgendem Code nicht Java Basics - Anfänger-Themen 4
A verstehe aufgabenstellung nicht! Java Basics - Anfänger-Themen 47
S verstehe den fehler nicht Java Basics - Anfänger-Themen 14
C Verstehe die Syntax nicht! Java Basics - Anfänger-Themen 2
M Verstehe den Quellcode nicht ganz Java Basics - Anfänger-Themen 3
G verstehe das problem nicht :( Java Basics - Anfänger-Themen 4
S RegEx Syntax - ich verstehe sie einfach nicht! Java Basics - Anfänger-Themen 3
G verstehe den unterschied zwischen equals und == nicht Java Basics - Anfänger-Themen 3
E Verstehe eine Schleife nicht Java Basics - Anfänger-Themen 5
B Eine Linie zeichnenmit Java, ich verstehe das einfach nicht Java Basics - Anfänger-Themen 4
G Verstehe einen Aufruf absolut nicht Java Basics - Anfänger-Themen 2
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben