Datentypen Verständnisprobleme bei einem Quelltext

jockyjoe

Mitglied
Hallo,

ich verstehe folgenden Quelltext nicht:

Java:
import java.util.Scanner;
public class DoppelFeld
{
    //Scannerinitialisierung
    Scanner sc = new Scanner(System.in);

    System.out.print("Wie viele Zahlen? ");
    int n = sc.nextInt();
    
    //Erstelle ein Feld mit Komponententyp int und der Länge n
    int[] werte = new int[n];
    for(int i = 0; i < werte.length; i++)
    {
        System.out.print("Zahl Nr. " + i + ": "); 
        werte[i] = sc.nextInt();
    }
    
    //Diesen Teil verstehe ich hauptsächlich nicht
    int[] werte2 = werte;
    for(int i = 0; i < werte2.length; i++)
    {
        werte2[i] = 2*werte2[i];
    }

    for(int i = 0; i < n; i++)
    {
        System.out.println("Die Zahl " + werte[i] + " ergibt verdoppelt " + werte2[i] + ".");
    }
}

Könnte vielleicht einer von euch mal versuchen mir den Quelltext zu erklären? Der Quelltext ist aus dem Buch: Grundkurs Programmieren in Java. Der Quelltext steht in einem Abschnitt mit dem Titel Referenzen.
 
Java:
import java.util.Scanner;
public class DoppelFeld
{
	public static void main(String[] args)
	{
		//Scannerinitialisierung
	    Scanner sc = new Scanner(System.in);
	 
	    System.out.print("Wie viele Zahlen? ");
	    int n = sc.nextInt();
	    
	    //Erstelle ein Feld mit Komponententyp int und der Länge n
	    int[] werte = new int[n];
	    for(int i = 0; i < werte.length; i++)
	    {
	        System.out.print("Zahl Nr. " + i + ": "); 
	        werte[i] = sc.nextInt();
	    }
	    
	    //Die Variable werte2 zeigt nun auf werte (REFERENZ darauf)
	    int[] werte2 = werte;
	    for(int i = 0; i < werte2.length; i++) //Verdopple jeden Wert im Array
	    {
	        werte2[i] = 2*werte2[i]; //Verdopple
	    }
	 
	    for(int i = 0; i < n; i++) //Gib jeden Wert uas
	    {
	        System.out.println("Die Zahl " + werte[i] + " ergibt verdoppelt " + werte2[i] + ".");
	    }
	}  
}

Ausgabebebespiel:
Wie viele Zahlen? 2

Zahl Nr. 0: 1
Zahl Nr. 1: 4

Die Zahl 2
Code:
(werte[0])
ergibt verdoppelt 2
Code:
(werte2[i])
.
Die Zahl 8 ergibt verdoppelt 8.

In Zeile 21 legst du eine weitere Referenz auf den Speicherbereich im Ram an
 
Jep... eben nur eine Referenz... deswegen ändern sich auch die Ursprungswerte mit.
[JAVA=21] int[] werte2 = werte.clone();[/code] 😉
 
offtopic : Was für ein Glück daß ich mich mit so einem Schwachsinn nicht mehr rumärgern muss. ... "Buch: Grundkurs Programmieren in Java"
Nach all den Jahren und Büchern steht zumindest für mich fest : 93% der Autoren haben mächtig einen an der Waffel! Alles weltfremde Selbstdarsteller. Meist selbst nix von der Materie verstanden, aber Hauptsache 'n Buch drüber schreiben. So auch dieser Autor! Ein bescheuerteres Beispiel FÜR WAS AUCH IMMER DAS SEIN SOLL hab ich selten gelesen :lol:

sry, musste mal gesagt werden!
 
offtopic : Was für ein Glück daß ich mich mit so einem Schwachsinn nicht mehr rumärgern muss. ... "Buch: Grundkurs Programmieren in Java"
Nach all den Jahren und Büchern steht zumindest für mich fest : 93% der Autoren haben mächtig einen an der Waffel! Alles weltfremde Selbstdarsteller. Meist selbst nix von der Materie verstanden, aber Hauptsache 'n Buch drüber schreiben. So auch dieser Autor! Ein bescheuerteres Beispiel FÜR WAS AUCH IMMER DAS SEIN SOLL hab ich selten gelesen :lol:

sry, musste mal gesagt werden!

Was ist hier das Problem?
Der Author zeigt ein einfaches Beispiel was erwartest du?
 
[OT]Das immer gleich alle laut loschreien, wenn ein Autor etwas von sich gibt, was, aus dem Zusammenhang gerissen, Quatsch ergibt. Also für mich sieht das eher nach der Problemstellung des Kapitels aus. Würd' mich nicht wundern, wenn ich mit der neuen Zeile 21 etwas vorgegriffen habe.[/OT]
 
Was ist hier das Problem?
Der Author zeigt ein einfaches Beispiel was erwartest du?
Frag ich mich auch. Es gibt mieserable Autoren und noch schlechtere Bücher, keine Frage. Und es hätte auch sicherlich ein besseres Beispiel sein können, will ich auch nicht abstreiten. Aber das Beispiel zeigt ganz simpel, was eine Referenz ist, was man mit ihr machen kann folglich auch, woran man achten muss, wenn man sie benutzt. Was will man mehr?
 
Was ist hier das Problem?
Der Author zeigt ein einfaches Beispiel was erwartest du?

Realitätsnähe und HIRN! Ich habe nun seit mehr als 15 Jahren Berufserfahrung in zahllosen Großfirmen, kleineren Softwareschmieden und sonstigen Projekten. So einen dümmlichen Quellcode insb. dann auch noch zur Erklärung von Referenzen kann nur von jemandem kommen der nie in seinem Leben jemals an einer Software praktisch rumgewerkelt -> sprich programmiert hat! So einen Stuss höre/lese ich oft von externen Beratern die NIEMALS selbst auch nur eine Zeile programmiert haben. Die sabbeln alle den gleichen Mist und weil sogar die Industrie erkannt hat daß die "schick" gekleideten sog. Consultants wirklich kein Mensch mehr braucht, schreiben die in der letzten Zeit auch noch vermehrt Lehrbücher. Völlig klar daß die IT zunehmend anderswo Zuhause ist. Das erklärt im Übrigen auch die lausigen heutigen Einstiegsgehälter !!!
 
Realitätsnähe und HIRN! Ich habe nun seit mehr als 15 Jahren Berufserfahrung in zahllosen Großfirmen, kleineren Softwareschmieden und sonstigen Projekten. So einen dümmlichen Quellcode insb. dann auch noch zur Erklärung von Referenzen kann nur von jemandem kommen der nie in seinem Leben jemals an einer Software praktisch rumgewerkelt -> sprich programmiert hat! So einen Stuss höre/lese ich oft von externen Beratern die NIEMALS selbst auch nur eine Zeile programmiert haben. Die sabbeln alle den gleichen Mist und weil sogar die Industrie erkannt hat daß die "schick" gekleideten sog. Consultants wirklich kein Mensch mehr braucht, schreiben die in der letzten Zeit auch noch vermehrt Lehrbücher. Völlig klar daß die IT zunehmend anderswo Zuhause ist. Das erklärt im Übrigen auch die lausigen heutigen Einstiegsgehälter !!!

Das Ganze ist ja auch nicht für Profis geschrieben sondern für Anfänger. Es geht in diesen Anfängerbüchern auch nur darum die Zusammenhänge zu verstehen. Sollte sich jemand für eine Vertiefung seiner Kenntnisse interessieren wird er eh nicht "Java von Kopf bis Fuß" (oder Ähnliche) lesen. Dafür gibt es passendere Lektüre.
 
Das Ganze ist ja auch nicht für Profis geschrieben sondern für Anfänger ...
Ja offensichtlich eben nicht! Wenn der Referenzen erklärt wozu dann den überflüssigen und damit unsinnigen Scanner?! Wozu diese noch dümmlichere Schleife? Am besten hätte er noch ein paar Threads mit konkurierenden Zugriffen eingebaut, dann wäre das Beispiel sicher klarer gewesen, gelle? 😉
Wie oft habe ich erlebt das abgeschlossene Informatiker an ihren ersten Tagen im Berufsleben erstmal gefragt haben was denn nun abstract oder interface genau bedeuten! Das kann doch wohl nicht wahr sein! Das kommt genau von solchem oben anschaulichen realitätsfernem Unsinn! Whatever, es gibt ja auch gute Bücher, aber m.E. eben nur von wenigen Autoren. Der große klägliche Anteil liest sich eigentlich nur gerne selbst! ... insbesondere übrigens bei Büchern für Anfänger. Das fällt das mit der Eigenleistung ja auch nicht so auf 😉
 
Ja offensichtlich eben nicht! Wenn der Referenzen erklärt wozu dann den überflüssigen und damit unsinnigen Scanner?! Wozu diese noch dümmlichere Schleife? Am besten hätte er noch ein paar Threads mit konkurierenden Zugriffen eingebaut, dann wäre das Beispiel sicher klarer gewesen, gelle? 😉
Wie oft habe ich erlebt das abgeschlossene Informatiker an ihren ersten Tagen im Berufsleben erstmal gefragt haben was denn nun abstract oder interface genau bedeuten! Das kann doch wohl nicht wahr sein! Das kommt genau von solchem oben anschaulichen realitätsfernem Unsinn! Whatever, es gibt ja auch gute Bücher, aber m.E. eben nur von wenigen Autoren. Der große klägliche Anteil liest sich eigentlich nur gerne selbst! ... insbesondere übrigens bei Büchern für Anfänger. Das fällt das mit der Eigenleistung ja auch nicht so auf 😉

Dann solltest du dem TO ein paar Buchempfehlungen mit auf den Weg geben. :bae:
 
@andreT
Ich wüsste mal zu gerne, was du für Bücher gelesen hast, dass du so eine Meinung hast. Das ist ja schon gruselig xD

Und wenn ein fertiger Informatiker sowas fragt, dann ist da was in der Ausbildung schief gelaufen. Das wiederum kann ich mir nur dadurch erklären, dass man die Azubis lieber als billige Arbeitskraft für Zeug ausnutzen wollte, das sonst keiner machen will anstatt sich um sie zu kümmern.
 
Ja offensichtlich eben nicht! Wenn der Referenzen erklärt wozu dann den überflüssigen und damit unsinnigen Scanner?!
Wer ist hier der Anfänger? ???:L
Ich denke mal die Kandidaten, die beim Kapitel "Referenzen" angekommen sind, werden schon verstehen, dass dieser Scanner hier nur dazu dient, ein paar Eingaben von der Tastatur zu lesen (macht der noch was anderes? Hab' ich nicht drauf geachtet) und mit der Problem "Referenzen" eigentlich nichts zu tun hat. Was würdest du denn in deinen Beispielen verwenden? Aber bitte, es kommen nur Klassen und Objekte in Frage, die mehr mir Referenzen zu tun haben als "Scanner".
 
@andreT:
Ich finde am Beispiel nichts verkehrt.
Scanner... hätte man rauslassen können, aber das ist auch das einzige. Und dass er drin ist, finde ich auch nicht schlimm.
Wie hättest du denn die Schleife gestaltet?

Und alles in allem ist das ein wichtiges Problem, das auch Fortgeschrittene haben können und sicherlich werden: Übergabe von Referenzen beim Versuch zu kopieren etc. etc.
Ich erinnere mich noch, als ich ein Graphenobjekt hatte und eine Kopie davon erzeugen wollte mittels
Code:
Graph kopie = original;
und da war ich schon über die Grundlagen hinweg. Solche Fehler passieren häufig und das Beispiel demonstriert, dass es auch das original verändert.
 
@andreT
Ich wüsste mal zu gerne, was du für Bücher gelesen hast, dass du so eine Meinung hast. Das ist ja schon gruselig xD
gruselig bringt es auf den Punkt 😀

Und wenn ein fertiger Informatiker sowas fragt, dann ist da was in der Ausbildung schief gelaufen. Das wiederum kann ich mir nur dadurch erklären, dass man die Azubis lieber als billige Arbeitskraft für Zeug ausnutzen wollte, das sonst keiner machen will anstatt sich um sie zu kümmern.
Tatsächlich Diplom- und die hippen Bologna-Informatiker 😀 ... keine Azubis/Fachinformatiker, die waren nach der Ausbildung praktisch oft recht fit!
 
@andreT:
Ich finde am Beispiel nichts verkehrt.
Scanner... hätte man rauslassen können, aber das ist auch das einzige. Und dass er drin ist, finde ich auch nicht schlimm.
Wie hättest du denn die Schleife gestaltet?

Und alles in allem ist das ein wichtiges Problem, das auch Fortgeschrittene haben können und sicherlich werden: Übergabe von Referenzen beim Versuch zu kopieren etc. etc.
Ich erinnere mich noch, als ich ein Graphenobjekt hatte und eine Kopie davon erzeugen wollte mittels
Code:
Graph kopie = original;
und da war ich schon über die Grundlagen hinweg. Solche Fehler passieren häufig und das Beispiel demonstriert, dass es auch das original verändert.

Natürlich zeigt es das, aber man hätte z.B. weder eine Schleife noch einen Scanner, noch ein (für Anfänger oft) kryptisches Array benötigt um eine Referenz zu erklären. Wäre der Quellcode oben verständlich wäre die Frage vom TE wahrscheinlich auch präziser gewesen.
 
Natürlich zeigt es das, aber man hätte z.B. weder eine Schleife noch einen Scanner, noch ein (für Anfänger oft) kryptisches Array benötigt um eine Referenz zu erklären. Wäre der Quellcode oben verständlich wäre die Frage vom TE wahrscheinlich auch präziser gewesen.

Versteh ich nicht was an diesem Array kryptisch ist...
Ist das für dich kryptisch?
Btw. du wolltest noch ein praxisnahes einfach-verständliches Beispiel aufzeigen.
Und wenn man in einem Anfängerforum Anfängerfragen stellt dann liegt es vermutlich nicht am Buch sondern am Anfänger. Und dafür ist das Forum gedacht.
 
Für Referenzen ist das Beispiel schon etwas lang.

Das Beispiel aus der Java-Insel bringt es gut auf den Punkt.

Java:
Point p = new Point();
Point q = p;
p.x = 10;
System.out.println( q.x );            // 10
q.y = 5;
System.out.println( p.y );            // 5
Java ist auch eine Insel – 3.7 Mit Referenzen arbeiten

Ist meiner Meinung nach verständlicher als das lange Schleifen Beispiel.

So sieht in vielen Büchern das Beispiel zu den Referenzen aus. Einfach und kompakt. Dennoch ist das obige Beispiel nicht schlecht und sollte jemanden der in diesem Kapitel angekommen ist auch nicht überfordern.
 
Tatsächlich Diplom- und die hippen Bologna-Informatiker 😀 ... keine Azubis/Fachinformatiker, die waren nach der Ausbildung praktisch oft recht fit!

Achso, es geht um Studis ... Ich glaube, da kann jeder ein Lied von singen. Hab auch einige in meinem Freundeskreis. Das liegt aber eher daran, dass man oft nur gerade mal so viel macht, um den Schein zu bekommen und viele haben eigentlich auch keine Lust zu programmieren, sondern wollen die "höheren" Aufgaben machen. Zudem wird das Studium immer mehr "verschult", sodass man immer öfter Ausreden zu hören bekommt, wie "Hat uns unser Prof nicht gezeigt, nur mal am Rande erwähnt". Was soll man dann noch dazu sagen ... Ich dachte immer, man bringt sich selber was bei beim Studium, aber das scheint inzwischen anders zu sein.
 
Für Referenzen ist das Beispiel schon etwas lang.

Das Beispiel aus der Java-Insel bringt es gut auf den Punkt.

Java:
Point p = new Point();
Point q = p;
p.x = 10;
System.out.println( q.x );            // 10
q.y = 5;
System.out.println( p.y );            // 5
Java ist auch eine Insel – 3.7 Mit Referenzen arbeiten

Ist meiner Meinung nach verständlicher als das lange Schleifen Beispiel.
Passt! Eben ein auf das Nötigste reduziertes Besipiel :exclaim:
 
Achso, es geht um Studis ... Ich glaube, da kann jeder ein Lied von singen. Hab auch einige in meinem Freundeskreis. Das liegt aber eher daran, dass man oft nur gerade mal so viel macht, um den Schein zu bekommen und viele haben eigentlich auch keine Lust zu programmieren, sondern wollen die "höheren" Aufgaben machen. Zudem wird das Studium immer mehr "verschult", sodass man immer öfter Ausreden zu hören bekommt, wie "Hat uns unser Prof nicht gezeigt, nur mal am Rande erwähnt". Was soll man dann noch dazu sagen ... Ich dachte immer, man bringt sich selber was bei beim Studium, aber das scheint inzwischen anders zu sein.

Nichts gegen die Studis 😛ueh:
 
Achso, es geht um Studis ... Ich glaube, da kann jeder ein Lied von singen. Hab auch einige in meinem Freundeskreis. Das liegt aber eher daran, dass man oft nur gerade mal so viel macht, um den Schein zu bekommen und viele haben eigentlich auch keine Lust zu programmieren, sondern wollen die "höheren" Aufgaben machen. Zudem wird das Studium immer mehr "verschult", sodass man immer öfter Ausreden zu hören bekommt, wie "Hat uns unser Prof nicht gezeigt, nur mal am Rande erwähnt". Was soll man dann noch dazu sagen ... Ich dachte immer, man bringt sich selber was bei beim Studium, aber das scheint inzwischen anders zu sein.

Mir ist auch klar daß ein Studium auch andere Bereiche (Mathe, ..) verstärkt abdecken muss, aber die Frage ist schon berechtigt wieso man nach 4-5 Jahren Studium solche Praxis-Lücken hat. Mich wundert die aktuelle Diskussion zum Thema nicht : Hochschulreform - SPIEGEL ONLINE - Nachrichten
 
Es ist doch ganz klar, dass jeder anders studiert. Es gibt die, die studieren und die, die Party machen. So ist es aber auch bei den Azubis. Und solltet ihr wirklich studierte Informatiker getroffen haben, die nicht wissen was eine Referenz ist dann tut es mir leid um die(die gehörten dann zur zweiten Kategorie).
 
Es ist doch ganz klar, dass jeder anders studiert. Es gibt die, die studieren und die, die Party machen. So ist es aber auch bei den Azubis. Und solltet ihr wirklich studierte Informatiker getroffen haben, die nicht wissen was eine Referenz ist dann tut es mir leid um die(die gehörten dann zur zweiten Kategorie).
Stimmt, aber davon in letzter Zeit (fast schon exponentiell zunehmend 😀) mehr und mehr.
Na was solls, ein "Gutes" hat das Ganze dann doch irgendwie : Die können sich oft gut verkleiden und sitzen dann in Ihren Anzügen in den Chefetagen und wenigstens nicht im meinem Büro :lol:
 
Nur weil jemand einen weißen Kittel trägt, macht ihn das genauso zu einem Arzt, wie einen Informatikabsolventen, der brav in jeder Vorlesung war, seinen relativ guten Abschluss hat und trotz 15 Jahre Pc Nutzung noch nichts von der Kommandozeile gehört hat, zu einem realitätsnahen Informatiker.


Ich finde solche Bücher eigentlich relativ ungünstig, da sie (möglicherweise) eine theoretische Grundage bilden, allerdings nicht die notwendige geistige Einstellung, die fürs Programmieren notwendig ist, beibringen.

Anstatt diese relativ reichhaltigen theoretischen Inhalte zu erklären, sollte man in diesen Büchern eher darauf eingehen, dass man besonders als Anfänger weniger Stoff auf einmal versuchen zu lernen sollte und stattdessen versucht die Beispiele umzuschreiben, vor- und rückwärts durchlaufen zu lassen, sodass man beginnt die Prozesse und Abläufe dahinter zu verstehen. Danach kann man sein Wissen ja noch beliebig aufstocken.
 
Schande über die Zweite Kategorie, Respekt für die Erste. Kann mir nicht vorstellen, dass sich die erste Kategorie einfach so verheizen lässt, wer das zulässt, ist eh' selber Schuld. Und von der zweiten Kategorie darf man sich ständig anhören: "Hab' ich studiert oder du?" während sie eigentlich nur Mist machen und dafür auch noch besser bezahlt werden. Das ist nicht nur im IT-Bereich so, sondern leider allgegenwärtig.
Also nee... "nix gegen Studis" ist zu allgemein. "Nix gegen Studis der ersten Kategorie." 😉
[EDIT]@Mujahiddin: Also, ich äehmm oh 😳 :lol:[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:
Schande über die Zweite Kathegorie, Respekt für die Erste. Kann mir nicht vorstellen, dass sich die erste Kathegorie einfach so verheizen lässt, wer das zulässt, ist eh' selber Schuld. Und von der zweiten Kathegorie darf man sich ständig anhören: "Hab' ich studiert oder du?" während sie eigentlich nur Mist machen und dafür auch noch besser bezahlt werden. Das ist nicht nur im IT-Bereich so, sondern leider allgegenwärtig.
Also nee... "nix gegen Studis" ist zu allgemein. "Nix gegen Studis der ersten Kathegorie." 😉

Hättest du nicht so damit übertrieben, hätte ich ein Auge zugedrückt... Aber du hast, also: Es heißt Kategorie! 😀

[EDIT]Ich weiß schon, Spacerat. =) Ist doch kein Problem![/EDIT]
 
Zuletzt bearbeitet:
@andreT
Den Scanner habe ich eingefügt; der normale Quelltext funktioniert mit den IOTools. Da diese Tools aber wahrscheinlich kaum einer kennt habe ich den Scanner genommen.
 

Neue Themen


Zurück
Oben