Was bewirkt dieser Code?

Status
Nicht offen für weitere Antworten.

Reality

Top Contributor
Hi,
ich finde die Codes in meinen JAVA-Buch sind nicht sehr einfach erklärt. Erst mal sorry, für die geballte Ladung Code:

Code:
package fahrzeug; /*Diese Zeile ist für euch uninteressant. Da werden nur die Deklarationen von einem Packet geladen */
import java.io.*;

public class Auto extends StrassenFzg {

public static int anz_autos=0;
public Auto(){
anz_autos++;
}
public Auto(String k_bez, short k_geschw, short k_plaetze){
bez=k_bez;
geschw=k_geschw;
plaetze=k_plaetze;
anz_autos++;
}
public short plaetze;
public final static int VK_KM= 50000;

public boolean eingeben(){

InputStreamReader daten=new InputStreamReader(System.in);
BufferedReader eingabe;
eingabe= new BufferedReader(daten);
try{
System.out.print("Bezeichnung: ");
bez=eingabe.readLine();
System.out.print("Sitzplaetze: ");
plaetze=Short.parseShort(eingabe.readLine());
System.out.print("Geschwindigkeit: ");
geschw=Short.parseShort(eingabe.readLine());
return true;

}catch (Exception e)
{
return false;
}
}

  public boolean anzeigen() {

  System.out.println("\nDas Auto ist ein "+bez);
  System.out.println("Es hat "+plaetze+" Sitze.");
  System.out.println("Der Top-Speed: "+geschw);
  if(verliehen)
  System.out.println("Es ist verliehen.");
  else
  System.out.println("Es ist nicht verliehen.");
  return true;
  }
}

Code:
import java.io.*;
import fahrzeug.*;

public class CarControl {

  static int anz_autos=0;
  static final int AUTO_MAX= 50;
  static Auto[] auto_liste= new Auto[AUTO_MAX];

  public static void main(String[] args){
  short auswahl;
  BufferedReader eingabe= new BufferedReader(
                          new InputStreamReader(System.in));
  do{
  //erst mal das Menue ausgeben
  System.out.println("\nCarControl - die objektorientierte Fahrzeugverwaltung");
  System.out.println("======================================================");
  System.out.println("\nHauptmenue");
  System.out.println("\n[1] Autos anzeigen");
  System.out.println("\n[2] Neues Auto");
  System.out.println("\n[0] Programm beenden");
  try{
  //versuchen, die Benutzereingabe zu lesen
  System.out.print("\nAuswahl: ");
  auswahl=Short.parseShort(eingabe.readLine());
  //Benutzereingabe verarbeiten
  switch (auswahl){
  case 1:
  System.out.println("\nAuto anzeigen");
  break;
  case 2:
  System.out.println("\nNeues Auto");
  break;
  case 0:
  System.out.println("\nBis bald...");
  break;
  default:
  System.out.println("\nFalsche Eingabe!");
  }
  }catch (Exception e) //falsche Eingabe??
  {
auswahl= Short.MIN_VALUE;
System.out.println("Nur ZAHLEN eingeben!");
      }
    }while(auswahl !=0);
  }


static int neues_auto(int auto_nr){

  anz_autos=neues_auto(anz_autos); //Was soll das bewirken?????!!!!!!!!!
  auto_liste[anz_autos]=new Auto();

  if (anz_autos <AUTO_MAX && anz_autos>=0)
  anz_autos=neues_auto(anz_autos);
  else
  System.out.println("Die Autosliste ist voll!");

  System.out.println("====================");
  auto_liste[auto_nr]= new Auto();
  while(auto_liste[auto_nr].eingeben()==false){
  System.out.println("Fehlerhafte Eingabe!");
  }
  System.out.println("Neues Auto angelegt.");
  return (auto_nr+1);
  }
  }

Also diesen Code kapiere ich nicht:
Code:
 anz_autos=neues_auto(anz_autos); //Was soll das bewirken?????!!!!!!!!!

Der Auto schreibt dazu folgendes:
Wenn der Interpreter auf diese Anweisung trifft, arbeitet er zunächst die rechte Seite der Zuweisung ab. Das ist bei Zuweisung Operatoren immer der Fall, denn ansonsten könnte eine Aktion wie
summe=21+21;
niemals der Variblen summe der Wert 42 zuweisen. In unserem Fall wird allerdings keine arithmische Operation auf der rechten Seite der Zuweisung ausgeführt, sondern eine Methode aufgerufen. Diese bekommt an_autos al Parameter übergeben und legt genau an diesem Index einen neuen Objektverweis an. Anschließend wird der übergebene Wert um eins erhöht und zurückgelifert. Die Ausführung der Methode neues_auto() ist damit beendet und die rechte Seite der Zuweisung abgearbeitet- das Ergebnis dieser Abarbeitung ist die neue Anzahl der Auto-Instanzen und wird durch die Zuweisung in anz_autos abgelegt. Damit kann anz_autos ohne weitere Veränderung in main() wieder in einem Aufruf von neues_auto() verwendet werden.

Kann mir das bitte jemand übersetzen?
Danke!

Liebe Grüße
Reality
 
B

Beni

Gast
Reality hat gesagt.:
Achja, der Code habe ist nur zu 3/4 fertig, darum mag er etwas komisch erscheinen.
Also mir erscheint er sogar äussert komisch.

neues_auto
ruft als erstes sich selbst auf, sich selbst auf, sich selbst auf... ???:L

Dieser Code produziert höchstens ein StackOverflow, sieht irgendwie nach einem Fehler im Buch aus. (Oder vielleicht will der Autor uns damit was sagen? :wink:)

Was ist denn das für ein Buch? Gibts das auch online?

mfg Beni
 

Nobody

Top Contributor
wenn du aus büchern und den beispiel texten was lernen willst, wende sie auf eigene beispiele an und lerne so etwas.

ja und ich sehe es auch so, dass er sich selbst aufruft und im if später nochmal, da muss was falsch sein
 

Nobody

Top Contributor
das, worauf es hinzielt ist wichtig.

erzeuge objekte von etwas und belege die werte darin, aber wird sicherlich später nochmal aufgegriffen.
wenns dann noch unklar ist melden
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Nicole1989 Was Bewirkt dieser Java Code? Java Basics - Anfänger-Themen 4
K mit <<1 kann man mal 2 machen, mit >>2 geteilt durch zwei und was bewirkt <<<1 und >>>1? Java Basics - Anfänger-Themen 5
S Was bewirkt ganz genau throw hinter einem Funktionsnamen? Java Basics - Anfänger-Themen 14
V Was bewirkt das Schlüsselwort extends in Verbindung mit class bzw. public class ? Java Basics - Anfänger-Themen 2
D Was genau bedeutet und bewirkt dieses @override? Java Basics - Anfänger-Themen 15
T setMaximumSize bewirkt nichts Java Basics - Anfänger-Themen 4
frau-u Was bewirkt "<<" oder ">>"? Java Basics - Anfänger-Themen 2
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
P Was bedeutet dieser Fehler? Java Basics - Anfänger-Themen 31
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
S Warum dieser Fehler? Java Basics - Anfänger-Themen 1
B Datum in dieser Range SQL? Java Basics - Anfänger-Themen 3
R Dieser Code sagt mir nichts... Java Basics - Anfänger-Themen 4
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
J Brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
M Frage, wie dieser Code funktioniert, bzw. weshab er bei mir nicht funktioniert Java Basics - Anfänger-Themen 4
L Hilfe! Was macht dieser Code? Java Basics - Anfänger-Themen 1
S Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 2
D Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 23
V Operatoren Warum kommt nicht das gewünschte Ergebnis dieser Operation? Java Basics - Anfänger-Themen 3
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
G Lastet dieser Code den Arbeitsspeicher eines Handys aus? Java Basics - Anfänger-Themen 7
B Was passiert in dieser Methode? Java Basics - Anfänger-Themen 3
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
C Warum funktioniert dieser Code nicht? Java Basics - Anfänger-Themen 2
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
P Geht dieser Code noch einfacher? Java Basics - Anfänger-Themen 16
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
F OOP Warum funktioniert dieser Regex? Java Basics - Anfänger-Themen 15
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
P Unterschied dieser 2 code Zeilen Java Basics - Anfänger-Themen 12
StrikeTom Was ist an dieser einfachen funktion falsch? Java Basics - Anfänger-Themen 5
M Wieso funktioniert dieser simple Code nicht? Java Basics - Anfänger-Themen 9
M prozess starten und warten bis dieser sich beendet Java Basics - Anfänger-Themen 3
P Was macht dieser Source code? Java Basics - Anfänger-Themen 5
S OOP Wie muss meine Klasse zu dieser main aussehen? Java Basics - Anfänger-Themen 5
0 Was bedeutet dieser Generic-code? Java Basics - Anfänger-Themen 3
H Wie so ein Exception in dieser HashMap? Java Basics - Anfänger-Themen 7
K Was wird in dieser Frage gemeint ? Java Basics - Anfänger-Themen 15
V Wie und wieso geht dieser Methodenaufruf? Java Basics - Anfänger-Themen 2
G Versteh nicht was an dieser If-Anweisung falsch ist Java Basics - Anfänger-Themen 2
S Ursache dieser Fehlermeldung (access dinied) Java Basics - Anfänger-Themen 3
A Was macht dieser Prgrammteil? Java Basics - Anfänger-Themen 2
B Warum hat dieser einfache Algorithmus lineare Laufzeit? Java Basics - Anfänger-Themen 3
B Wieso funktioniert dieser Vergleich nicht? Java Basics - Anfänger-Themen 3
A Welche dieser Schleifen im TableCellRendererist effizienter? Java Basics - Anfänger-Themen 18
A Was ist an dieser Datum-Methode falsch? Java Basics - Anfänger-Themen 5
G Was macht dieser Code? Java Basics - Anfänger-Themen 3
J Was sagt mir dieser Ausdruck? Java Basics - Anfänger-Themen 9
S Brauche hilfe zu dieser AUfgabe Java Basics - Anfänger-Themen 4
M Was ist an dieser case-Anweisung falsch? Java Basics - Anfänger-Themen 2
tomzen Programm ignoriert in der Ausführung Code Java Basics - Anfänger-Themen 8
O Obfuscateter Code lässt sich nicht ausführen? Java Basics - Anfänger-Themen 7
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Connect-4-Code analysieren Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
T Fehlercode bei code der das Alter ausrechnet Java Basics - Anfänger-Themen 2
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
jhfjeh Strukturgramm in code Java Basics - Anfänger-Themen 11
D Tipps zum Code Java Basics - Anfänger-Themen 24
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
W Rückfrage zur Programmgestaltung (clean code) Java Basics - Anfänger-Themen 12
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben