[Playlisten] [Impressum und Datenschutzerklärung]

03.5.1 struct, Werttyp, Referenztyp, Teil 1


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

esgibt in sich haben eine sehr feinsinnigeUnterscheidungdiessehr typisch für sie Sharpdas was anders passiert wenn Erstschlag stehtandas Ding verhält sich anders überraschenderweiseGanztrakt ist fast wie eine Klasse mit den ganzen Wasser im hattenes verhält sich aber anders definierteZellenin diesen Abschnitt Strukturen undReferenzenabstrakt ist eigentlich wie eine Klasseerhält man das das anders als in C plus plus in C plus plus ist eines ?? Paktes das sehr praktisch dasselbe wie eine Klasse sagten sie auch schon aus sieda kommt ein ?? überhaupt die Idee hat Klassen so zu bauen?? Armen in Java gibt sie gar nichtinsofern große Verwirrungbisschen klarmachen was die Klassenbibliothek von Stylesviel Gebrauch machtwenn man den Unterschiednicht verstanden zwischen Stadt und lasFeldmannauf die Nase zynischer und wie gesagt das ist ein spezieller Unterschied nur in sie Sharp in C plus plus gibt's den Unterschied nichtin dieser Formgibt einen unterschied aber der ist marginalund ?? in Java gibt's gar nichts sagteinenSchritt zurückanVariablen darum geht's um Typen von Variablendaran sie das ganze aufziehenalso eine variable Art wie sollUppsala mit zweiundvierzigStaatenund wenn ich jetzteine Variable B den Wert von A zuweiseund danachAumdreizehn erhöhenwird natürlich der Wert von B derselbe sein B wird immer noch zwoundvierzig sein danach wird A auffünfundfünfzig stehen aber B wird immer noch zwoundvierzig seindas sind zwei verschiedene Sachen dieses A und SB sind zwei verschiedene Sachen die getrennte Leben führengenauso bitter sein für Distraktionund für die Klassen über die ganze Zeit gebaut haben wird es anders sein die führen kein getrenntes Lebenähmerst mal weiter mit denschwarzwelche werden sich genauso verhaltenalso Textteil ist von der Sorteden Bauernverhält er sich wie normale VariablennunjetztdetailgenauPunktwenn Siekeinen Spambauenbesteht aus Trakt der Welt sich genausowie eine normale Variableüber das Kind als binär zahlenPunktvermauerter würde sich so verhalten?? danneinen ganz speziellenSystem Nürnbergs Komplex komplexe Zahlen dass sie wann ja alles nurganze Zahlen damit virtuelle ZahlenkomplexeZahlen können wir auch von Sieber verweisennoch einen Verweis hinzufügenauf System Nummer sechsgroße Dinge auf System MehrwegsystemMatrixda stecken zum Beispiel dann komplexe Zahlen werdeneh was werden schon öffnenwarenund nun habe ich was wie ZisternenPunkt ?? RexMatrixPunkt KomplexCD ??AG eine komplexe Zahlund sie sehen auch das ist wieder eineAbstractwird so verwaltetwie normale Zahlen verwaltet werdenKommaes istdurch den auch mal am Rande eingeführt daskann dann alles was man sich so vorstellt ich kann das nach den Winkelfragen nach dem Alter nach dem Imaginärteil nach dem Betrag fand ich kann zwei davon addierenaberich kann zum Beispielhabendasnicht so ist sondernEnd-Ergebnissegebe die verwendetich kenne zum Beispiel haben das ist eins Komma null plus zwei Komma null MarxistenPunktRex PunktRex Punktmuss man dieim Mittelmeer überdas ganze mal beschreibenamMittelmeer über das was hier steht steht einer für die Zahl dieaus der komplexenvon diesem konvexen Typ gibt mir die imaginäre einsdann kann er plötzlich damit modifizierenaddierenhaben und diverse andere Operation das am Rande also das sind typische Kandidatenfürs Chucksdie verwaltet werden wie die ganz normalenZahlentypenverwaltet werdenwenn ich eine Klasse habe ist das aber anders sobald ich ?? Klasse habeVariablenfür eine Klasseeine Instanz einer Klasse wird das Verhalten anders werdenwas siehier dem Aden antun würden wenn das klasse wäre würden sie automatischden B an eines Fax das nicht so bei den Zahlennicht so bei den Bullsist nicht sodas Komitee Meeting maldurchexerzieren?? ich baue ein neues Meeting das Weihe eine Klasse GrenzwertvernichtetKomma DFGHaarneuesMeetingstartet und eine Stunde lang istKommaich weise daswar niedie Seitenübernahmeweil es jetzt für Laufvariablen benutzt werden im SKPreise daseiner anderen Variable namens K zu?? und nunverlege ich das Meetingumso soviel Stundenhundert zwanzig Stundendas siehthoffentlichnicht ganz unähnlich aus wie das hier obenA soll eine ganze Zahl sei dies steht am Anfang auf zweiundvierzigdes MeetingTypHsoll ein neues Meeting seindas ?? nicht so verschieden aussehenin der nächsten ZeileB soll eine ganze Zahl sein und arbeite ich als ersten Wert zu Neujahr sieht doch genausoaus K soll für ein Meeting stehen und das Haarweiß ich zu?? und zum Schlussdividiert durch meiner Zahl aber Sun ich erhöhe sie um dreizehnund hierdurch meinMeeting was andie Meetingshaarund Verlegers um hundert drei zwanzig Stunden nach hintendas absurde ist auf Anhieb das absurde ist es wird sich auch K ändernes gibt nur ein Meetingdie ganze Zeit hierdie oben gibt es tatsächlich zweiganze ZahlenA steht für die eine besteht für die anderen hier gibt es nur ein einziges Meeting ich habe ja auch nur ein einziges Meeting tatsächlich gebauthabendass wir tatsächliche durch gereichtdas ich mal vordass das wirklich so istso ein neues Meeting bauen das ist das ist das ihrHaarKlammer zuein neues Meetingeine Stunde langaktuelle Zeitendlich zur nächstenjetzt habe ich Kdieses neue Meeting zugewiesenin K stecktebenfallseine Stundeaktuelle Zeit umbenanntund jetzt nehme ich Haarund im Anfang erzeugt haben und verlegen lassen hundert ein zwanzig Stunden nach hintendann ist H erst mal??Insekten zwanzigste viertezwei Tage weiter in der Tat Haar wurde verlegtund jetzt guck ich mir noch keiner anKa wurde auferlegtein und dasselbe Dingwarenganz elementare Unterschiedzwischen dennormalen Zahlenin sie sharpdienstagsdie sich genauso verhalten wie die normalen Zahlen an die heißen dann werde Tütenund den Klassendie heißen dannReferenztypwas hier gespeichert wird ist nicht das Ding als solches dieses Haarsteht nicht fürdie Instanz meiner Klasse als solchessondern steht ein Verweisauf die Klassees habe in C schon gesehen als Zeigerwenn sie VariablenfürKlassen habenInstanzen von Klassen habenentstehende ein Lichtzeiger drin dieses Haar ist eigentlich ein Zeiger auf das Ding was ich da gerade neu erzeugt habeund ich sage dieses Khan Ergebnis ist derselbe Zeiger zeigt auf dasselbe Ding sagte nur nicht zeige man sagt ReferenzWasser dasselbe istanders als in C kann man mit ?? Und-Zeichen Zeiger mit diesen Referenzen nicht mehr rechnen und in einer C++wenn sie in Java und in sich ab hiermit nicht mehr rechnen müssen und das ganze etwas sichererwar mal das mal auf was der Gedanke istalso hier obeneinen ganze Zahl auf zweiundvierzigB wirddiese Zahl?? und danach Raum zwounddreißig erhöhendamit wirklich zwei Speicherstellenund die Variablen stehen für die SpeicherstellenA und Bgestartet wird Punkt was das ?? war zwoundvierzigich hatte mit zweiundvierzigB steht am Anfangauch auf zweiundvierzigdamit fange ich ja anund dann erhöhe ichdie zwoundvierzig um dreizehn sind das fünfundfünfzigdraus wirddas was im ersten Teil der passiertwenn sich tags haben sowas wie Day Time Times Pen oder Komplexdasselbe Phänomenverhält sich wie die Zahlentypenwenn ich eine Klasse habe ist das andersfür ein einziges Meeting gebautund ist zwei Jahre keineGmbHist die erste DTS Variable hieß Hes wird ein Meeting gebautwo die aktuelle Zeit entsteht vermehrt zwölf Uhr zehn irgendwasdieses eine Meeting wird gebautmit dem jungund die Variable Hist nur eine Differenz daraufwar sie nur die Hausnummer es ist nicht das ganze Dingsondern nur die Hausnummerund wenn ich dann in den nächsten Schritt reingehenund H an K zuweisehabe ich eine zweite Variable Kaber auch da steht nicht das komplette Ding drin sondern ich kopiere die Hausnummerdieses Kaenthält dieselbe Hausnummer denselbenVerweis dieselbe Referenzdas Objekt gibt's nur ein einziges Malaber es gibtzwei Speicherstellendie auf die Subjekt verweisen zwei Verweise das ist der Unterschied zwischen Klassenauf der einen Seiteund sie schadenuns die normalenZahlen und Zuwachszahlenentschlackt und boolden Werttypen das sind die Werttypenwo wirklich Werte abgespeichertwerden und die Klassensind Referenztypendie Variablen enthalten ReferenzenKomma sie hausenwie Zeigerin C und C plus plusund das muss jetzt ausdrücklich mit irgendwelchen Sternchen schreibtsie Sharp kann auch Zeiger mit Sternchenwenn manbisschen trittaber das sind eben keine ?? zeigenin dem Sinne sondernetwas besser gekapselt Referenzeninternweist die Maschine auf dieses Haar das Kzeigt auf dasselbe Objektverrät einem nicht diesen Zeiger sondern verrät einem nur das Objekt was dahinter stehteinspannendes was Außenstehendeich habe ein Meetingdas ist eine Klassejedes Ding von diesem Meeting wird so verwaltet das nur Referenzen darauf gespeichert werden dieses Meeting für sich hat tatsächlichrichtigen Datensatznahm Sven fürein ein Zeitpunktund ein Datensatz der Menschen für eine Zeitspannedas sie sind wie das Chucks aber die sind sie mit ihm verstecktwarendas klassische außen sagt was mit mit Meetingsvariablenpassiertwenn ich die Änderungwird klarer wenn ich einmal umschalte wenn ich hier das Meeting zu einer Stadt machekeine Änderung im ?? Meeting machen hierden sich aus Verfahrensohier ein neues Meetingsbaunetzkommt der nächste Schrittwas ist jetzt passiert das ist die aktuelle Uhrzeit das Meeting ist auf der aktuellen Uhrzeit ich baue ein Meeting kam ihrsteht auch auf der aktuellen Uhrzeitals kleines okayund jetzt kommt das VerschiebenMeeting ist jetzt eines Trakt geworden keine Klasse mehr jetzt verschiebe ichdas Haardas Haarist jetztverschobenTage weiter und das K ganz glatt gegangen ist ist nicht verschobendurch einen einzigenfast eine einzige Änderungähmder unterschied ist tatsächlichgar nicht vorführen wollte eigentlich der Unterschied ist tatsächlich nur diesesSchlüsselwort hier wenn da nicht Fax steht sondern Claus steht heißt dasjede Variablefür sein Meetinghat man Zeigerverweist auf ein Meetingund wenn sie zuweisenkriegen sie kein neues MeetingKomma wenn das Fax steht heißt dases verhält sichwie sich normale Zahl verhalten würdean dieser Stelle wird tatsächlichein zweites Meeting komplett zweites Meeting mit den ganzen Datenerzeugtund dieses H und K sind zwei getrennte Meetings die für sich getrennt leben sowiedieses A und Bfür sich Getrenntlebenbei Klasse wäre das nicht so meiner Klassesind H und KZeiger auf dasselbe Dingan dieser Stellein der Glas stehtgerade ?? sind offenbar kleine Feinheiten immer berücksichtigen muss was Fax machtimmer wieder raus hieraber das ist derLebenswichtige Unterschied zwischen den beiden wenn sie hier mit Details und Times Benson Komplex und so weiter arbeitenim Hinterkopf haben die verhalten sich tatsächlich sowie sich Zahlen verhalten würdenjedesjede ?? Variante davon istecht mit Daten hinterlegtwarenKomma dass hier habenfür eine Klasseist in ?? zwei nicht jede Variable davonmit einer eigenen Klasse hinterlegt mit einer eigenen Instanz hinterlegt sie müssen wirklich eine Instanz erzeugendann haben Sie eine neueund wenn sie die durchstreichenwie hier von K bleibt es eine einzige Instanz der Klasseund sie haben nur zwei Variablendie auf dasselbe Ding verweisenwenn sie der variablen Cavasuntunsie das auch in der variablen HaarFrage was passiert wenn ich zum zweiten Mal auf diesen Knopf drückedabei ?? ich ja schon wieder neues Meetingan das es in der Tat ein zweites Meeting zum zweiten Mal auf den Knopf drücken haben sie hier ein zweites Meeting erzeugt in die zum dritten Mal auf den Knopf drücken haben sie dann ein drittes Meeting erzeugtund dieses ist eine lokale Variabledie lokale Variable merkt sich die Hausnummerund bei dieser Schweifklammer ist die lokale Variable wegdas heißt die Hand aus Komma verloren sie kommen nie wieder an dieses mit den Grandessteht irgendwo im Speicher ist aber verwaistweil ich kein Mensch die Hausnummer gemerkt hatman sie noch mal klickenim ersten Anklicken ein neues Meetingwie man merkt sich die Hausnummer lästiges Weg danachist die Deck es verlorenähmmeines herrenlosen Speicherung stehtbeim nächsten Klick bauen sie ein neues ??merken sich das wenn sich die Hausnummerder Referenzwenn sich die Hausnummer in der lokalen Variablen Hdiese VariablenvariableH geht aberverloren das heißt ich habdas nächste Stückchen Mülldarum den Speicherverkleinerungist ?? was dazu es gibt dann ein aufräumen der das auch wieder sauber machter in C plus plus muss man C muss man es selber aufräumenin Java und sie schaffe dannautomatisch aufgeräumteman solcheMüllobjekteim Speicherrumfliegen hatüberlege ob ich das noch vorführenkannamkann ich das nur vorführtwas am besten sich das wirklich vorzustellendas dass wir normale lokale Variable ist dieses Haarwenn ichdie und bei der Schweifklammer binist der Wert dieses A verlorenund das nächste Mal wieder rein Komma Witzneu gebaut und auf zwei ?? vierzig gesetzt dasselbe passiert hier aber mit Hausnummernich merke mir NHeine Referenz aufwas die Hausnummer von einem neugebautenMeetingund bei der Schweifklammer hier unten vergesslich die Hausnummerdas heißtich habeim Speicherim Speicher habe ich irgendwo mein neues Meetingerzeugtzwischenzeitlichhabe ich mir NHdie Hausnummer gemerktund dann vergesse ich Haarund das heißtherrenlos im Speichersteht das Meeting um beim nächsten Klickbaue ich ein neues Meetingmerke mir in der lokalen Variablen Hdie Hausnummerund wenn ich dannhier unten an Kommaist Haar weg und ich habe den das nächste Stückchen Müllspeicherungstehendie werdennachher automatisch abgeräumt zu mindestens ich habe mich aber werden sie automatisch abgewandt?? insofernkeine Panik singende Stelle aber so wird es ersichtlich sein wenn ich mirnicht merkewo die gestanden haben sind sie verloren?? die Gästeliste anlegen zum Beispiel in der die alle abgespeichert werden könnten hierhabeneine Liste sagen ?? speichere mir eineSprecherinderist es der schöne Meeting natürlichanSpeichermedienMeetingsMeetings in ?? in einer Listegeschickt wird so nunin dieser Liste speichern mir die ganzen Meetings nicht erzeugt habe?? meetings Punkt netPunktA zum Beispieldann erzeugte mirmal vorerzeugte mir bei jedem Klick ein neues Meetinghängt es an die Liste dranweiterbeim nächsten Klickwieder rein erzeugt ein neues Meetingspeichert die Hausnummerdie Referenz in der lokalen Variable Hdas heißt der steht jetzt andere Hausnummer drin als ebenin SonderzahlenVariable könnte beim nächsten Mal auch ?? andere Zahl drin stehendie Datetime Herde steht beim nächsten Aufrufanderes Datum andere Uhrzeit ?? dasselbe Datum ?? zumindest an der Uhrzeit drinund in diesem Haar steht andere Hausnummer drin und hier merkte sich jetzt eben die Hausnummer in seiner Liste diese ist es dann eine Liste von Hausnummernund Referenzenbeim Essen liegt oder neun??ein?? da steht also drei Sachen drin die alle zwischendurch über diese Variable H gelaufen sind aber in dem Haar standen immer nurdie Differenzen die HausnummerH ist vergeben und vergessen die alten Werte von Hasen vergeben vergessen aber in Meetings habe ich mir noch gespeicherter zeichnet jetzt nicht das es anders als inC und C plus plus in sie und sie wird Bus könnte jetzt wirklich den an welcher Stelle im Speicherdiese Instanz des ?? der Klasse steht das sinnliche nicht verborgenaus guten Gründenaber besehen wir haben drei Stücke sind die drei verschiedenen ?? erzeugt worden sind eineumokay das es anscheinendsolche Scholle ?? hundert ?? vernichtet und verlegt sehr gut alsoeine Nachverlegungsverdichtungist um fünfzehnUhr fünfundzwanzigdie nächste nach Verlegung ?? hundert ein zwanzig Stunden und sieist um fünfzehn Uhr sechsten fünfzig und die dritte nach Verlegung und hundert ein zwanzig Stunden fünften sechsten zwanzig dreiunddreißigdrei verschiedeneBauwagen und anderen Knopf einder einfachunter soder einfach die Meetings anzeigthundertmal geschicktich mach mal folgendesBatzen zweizwei?? haben Contentist es einfach das was auf den Button stehtauf dasDatumvom letzten MeetingMeetings das war die Liste aller Meetings die wir ihm gebaut habenund daraus nämlich das letztelastund von dem letzten Meeting nehme ichdas Datumausgeschieden in die damals alsoam?? verschwand die dauerndeselbe Dauerich möchte jedoch nicht nur die Dauer haben sondern ich möchte etwasaussagekräftigeshabenLeerzeichen sie noch mehr haben als du welchenich baue gerade noch ein?? in meine Klasse Meeting dass er nicht nur du welchenausgibt sondern dass er auchdenZeitpunktraus gibt's das äh istder timeDate timesinnvollerweiseeinenzu holen gebe ichwenn's zurück zu setzen setzt sich wennes sollte schon alles seindass eine Party wiederganz von außen auf den Zeitpunktzugreifendas wäreganz lieb ich den Zeitpunkt des InternetzeitpunktWände anzeigen also wenn der zweite Knopfgeklickt wirdnimmt's ja das letzte Meeting aus der Liste die ich darum aufgebaut habeund schreibt dasden Zeitpunktauf den zweiten Buttonbisschen blödsinnigvom Interface Design her aberlieber was passiertden Dreck unter denNägeln sollen so den Weg auszwei Buttons zu haben die Button heißenich erzeuge ein paarMeetings und des westlicheClique müsste daokaywas abgeschnittendie Uhrzeit des letzten stehennach dem alle größerenErziehermit dem Verlegen nach hinten heraus in das man wirklich maldie Uhrzeit wieder erkennen kanngroß??erkennen könnenalso mit dem Button wurde ein neues Meeting angelegtin dieser Liste Meetings abgespeichert?? noch einsund hier müsste jetzt bei KlickdatenUhrzeit für das letzte aus der Liste sehennurdreißigum eine hohenochmals Dickemüsste jetzt damit Komma klicke daeinunddreißigstehendas vom letzten ??ist ein bisschen erschreckt das so zu machenhabe er zurück zum Erfolg führen also hier habe ich mir in der Liste Meetings dann nur Referenzengespeichert sind nicht die wahren Objektesind die Hausnummerndie vor in der variablen Haar bestanden habenkönnte das ganz auf die Kürze erreichen wenn ich einfach das Meeting erzeuge und hier direktin die Liste ein Baubau ein neues schmeiße sofort in die Listedurch das ihr umständlich geschrieben