Archiv verlassen und diese Seite im Standarddesign anzeigen : Begriffsklaerungen (war: Benötige dringend hilfe in JAVA !!!!)
Hallo, ich schreibe morgen eine Klausur in INformatik und sollte diese Begriffe verstehen und drauf haben:
Vektor-/imagegrafik
Skalierbarbeit
Koordianten Transformation
Absolute/Realtive Koordinaten
Klassenhierarchie
Vererbung
Polymorphie
Ereignisverarbeitung
Listener-Konzept
Könnt ihr mir diese Erklären?
Würde mich echt freuen.
Quantumseeker
21.11.2006, 18:15
wieviel zahlst du?
also zu vektorgraphiken hab ich selbst zu wenig ahnung, aber zu klassenhierarchie kann ich dir ein bissl was sagen.
Tja als Klassenhierarchie versteht man die Struktur einer Anwendung, wenn sie OO (ObjektOrientier) aufgebaut ist. Abgebildet wird das ganze meist als UML Klassendiagramm. Um eine KlassenHierarchie zu "haben" waere es natuerlich toll, wenn diese Klassen irgendwie zusammenhaengen wuerden. Damit sind wir auch schon bei einem weiteren Begriff auf deiner Liste. Vererbung. Wenn du ein Objekt hast, welches genau dasselbe koennen soll wie ein anderes Objekt plus noch einige weiter funktionen, dann kannst du das erste Objekt vom zweiten "Erben" lassen. Man spricht auch von "Erweitern" implementiert wird das ganze dann so:
class A extends B{
...
}
Hier erbt also die Klasse A von der Klasse B. Das heiszt, dass du auf eine Instanz der Klasse A alle Methoden, welche public oder protected sind auch ueber/mit dem A-Objekt aufrufen kannst. Wichtig dabei ist: im Gegensatz zu C ist in Java keine(!) Mehrfachvererbung moeglich.
So... was passiert aber, wenn ich jetzt in Klasse A und Klasse B die selbe Methode implementiert habe? Berechtigte Frage. es wird dann immer die Methode ausgefuehrt, welche als erstes "auftritt". Also wenn in A und B eine test() implementiert ist, dann wird bei einem A.test() auch die A-Implementation aufgerufen. Das ist dann Polymorphie.
So. Ich muss jetzt leider weg, aber lies dir das mal durch und vielleicht kann dir auch jemand anders noch weiterhelfen.
Ach ja und das naechste mal vielleicht einen Tag frueher posten!:D
Viel Glueck bei deiner Arbeit.:)
@Quantumseeker: Ist das jetzt ein Forum wo geholfen wird oder nicht?:mad::mad::mad:
Ich hasse solche Typen!!!!:mauer::mauer::mauer::mauer:
Hallo,
viielen dank nochmal.
Wisst ihr vielleicht wie ich mich nun für die Arbeit vorbereiten könnte der Lehrer meinte das er ein programm nehmen wird welches wir nicht kennen :D und dieses sollen wir dann beschreiben.
mOOzard: Bitte sachlich bleiben.
styla1: Bitte beim naechsten mal anstaendige Thementitel angeben. Wenn du alle Erklaerungen beisammen hast waere es schoen, wenn du diese in unserem Wiki (www.coding-wiki.de) veroeffentlichst.
Firefall
21.11.2006, 22:12
Nunja...
Vektorgrafiken sind Grafiken, die als Beschreibung der Bilddaten gespeichert werden. z.B. in Form von Punkten (->Polygon). Images sind halt exakte Abbilder jedes einzelnen Pixels (->Photo).
Skalierbarkeit heisst soviel wie die Veränderung der Grösse von meistens sichtbaren Objekten, z.B. Bildern, oder des Fensters selbst.
Absolute/Relative Koordinaten beziehen sich auch auf solche Objekte. Relativ kann z.B. heissen relativ zum Bildschirm, oder relativ zum Elternelement. Ein Bild kann z.B. 50% Breit sein - wobei 100% der Bildschirmbreite entspricht. Oder der Fensterbreite. Es kann aber auch 500px Breit sein - Dann spielt Fenstergrösse, Bildschirmgrösse, etc alles keine Rolle, weils eben absolut ist.
Vererbung ist logisch... Wenn ein Objekt bestimmte Eigenschaften hat, und seine Unterobjekte kriegen die auch, wenn nicht anders definiert, dann erben sie sie eben.
Polymorphie kenne ich als die (mehr oder weniger intelligente) Selbstmodifizierung eines Programms, also der Manipulation seines eigenen Codes.
Ereignisverarbeitung dürfte die Art sein, mit der Ereignisse wie Mausclicks gehandlet werden. Das ist sehr spezifisch. Windows-"intern" verläuft das über eine sog. Nachrichtenschleife - Das OS schickt der Applikation, was gerade so abgeht von der Hardware her, also z.B. "Hey App, User hat gerade Enter gedrückt!".
Listener-Konzept assoziiere ich mit Sockets. Aber kann auch gut sein, dass das was anderes ist... Prinzip dort: Socket wird halt in den listen-mode gesetzt, und wenn ne eingehende Verbindung kommt, wird ein Event ausgelöst, und dann akzeptiert das Socket die Verbindung (Oder natürlich auch nicht :D) und der Datenaustausch geschieht.
Kriege ich dafür ein Diplom?
eViL_oNe
21.11.2006, 22:27
Nunja...
Polymorphie kenne ich als die (mehr oder weniger intelligente) Selbstmodifizierung eines Programms, also der Manipulation seines eigenen Codes.
durchaus richtig -- hier ist allerdings wohl eher späte Bindung gemeint, d.h. dass die geeignete Methode einer Klasse erst zur Laufzeit bestimmt wird und nicht zur Compile-Zeit. Damit kann man etwa folgendes nettes Konstrukt machen (Pseudo-Code):
class A
{
doSomething() { print "das ist A"; }
}
class B extends A
{
doSomething() { print "das ist B"; }
}
class C extends A
{
doSomething() { print "das ist C"; }
}
A[] array = new A[] { new B(), new A(), new C() };
array[0].doSomething();
array[1].doSomething();
array[2].doSomething();
Ohne Polymorphie würde dreimal "das ist A" ausgegeben werden, so erreicht man das eher intuitive Ergebnis. Je nach Programmiersprache muss man noch spezielle Schlüsselwörter für die polymorphie vorsehen (bei C++ etwa virtual in der Basis-Methode). Bei Java ist es andersrum, da kann man mit modifiern Polymorphie verbieten (etwa final oder private)
Ereignisverarbeitung dürfte die Art sein, mit der Ereignisse wie Mausclicks gehandlet werden. Das ist sehr spezifisch. Windows-"intern" verläuft das über eine sog. Nachrichtenschleife - Das OS schickt der Applikation, was gerade so abgeht von der Hardware her, also z.B. "Hey App, User hat gerade Enter gedrückt!".
Message-Driven verläuft es auch in anderen Plattformen -- ein gutes UI-Framework kapselt diesen Teil vom Benutzer ab, so dass man sich nicht um Message-IDs und ähnliches zu kümmern braucht. Ob das nun mit ActionListenern, UIAdaptern, Events und Delegates oder Callback-Methoden gelöst wird, hängt wiederum vom Framework ab *g*
Listener-Konzept assoziiere ich mit Sockets. Aber kann auch gut sein, dass das was anderes ist... Prinzip dort: Socket wird halt in den listen-mode gesetzt, und wenn ne eingehende Verbindung kommt, wird ein Event ausgelöst, und dann akzeptiert das Socket die Verbindung (Oder natürlich auch nicht :D) und der Datenaustausch geschieht.
ich asoziiere damit eher die ActionListener aus Java, eine mögliche Form des Observer-Patterns. Aber vielleicht irre ich mich auch, Sockets klingen auch recht plausibel
Kriege ich dafür ein Diplom?
noch kein Jedi du bist *g*
Hallo,
ich bedanke mich erstmal, viiieeeelleeen DANK.
ALso meinerseits würde ich dir ein DIPLOM geben habe alles verstanden :D *hoff* .
Das mit dem Listener haben wir in der Schule irgendwas mit ActionListener gemacht aba verstehe das nun auch.
Danke an euch nochmal.
Firefall
22.11.2006, 18:05
ich asoziiere damit eher die ActionListener aus Java, eine mögliche Form des Observer-Patterns. Aber vielleicht irre ich mich auch, Sockets klingen auch recht plausibel
[...]
noch kein Jedi du bist *g*
Auch Java ich nicht kann :D
Vektorgrafiken sind Grafiken, die als Beschreibung der Bilddaten gespeichert werden. z.B. in Form von Punkten (->Polygon). Images sind halt exakte Abbilder jedes einzelnen Pixels (->Photo).
So ungefähr. Vektorgrafiken sind beschreibende Objekte, die nicht den Bildinhalt sondern die Bildform beschreiben. Für eine Vektorgrafik ist ein Kreis ein Kreis: Ein mathematisches Objekt mit einem Mittelpunkt und einem Radius. In einer Rastergrafik (Image, Bitmap) ist dieser Kreis in einzelne Punkte aufgebröselt und quasi von seiner mathematisch "reinen" Form getrennt. Vektorgrafiken beschreiben nur ein grafisches Objekt, z.B. über seinen Umriss, und seine Füllung. Pixelgrafiken/Rastergrafiken/Images/Bitmaps beschreiben nur das optische Abbild, zeichnen dies aber korrekt nach.
Vektorgrafiken lassen sind prinzipiell ohne Daten und Genauigkeitsverlust in der Größe ändern (skalieren), drehen, verformen, verschieben, denn die darunter liegende mathematische Beschreibung bleibt immer erhalten.
bei einer Rastergrafik ist diese Beschreibung nicht vorhanden, d.h. jede Manipulation der Originaldaten verändert den Informationsgehalt.
Skalierbarkeit heisst soviel wie die Veränderung der Grösse von meistens sichtbaren Objekten, z.B. Bildern, oder des Fensters selbst.
Skalierbarkeit heißt zweierlei.
Bei einer (Vektor)grafik bedeutet dies, daß diese ohne Informationsverlust in der Größe verändert werden kann. Vektorgrafiken sind per se skalierbar und damit auch (informationstechnisch) skalenfrei.
In der Informationsverarbeitung heißt Skalierbarkeit aber auch, daß ein Programm mehr verschiedenen Größenordnungen an Datenbeständen und Transaktionen klarkommen kann. Ein Webserver ist z.B. skalierbar, wenn er in der Lage ist, sowohl 10 als auch 10.000 oder 1.000.000 Transaktionen zu verarbeiten (möglicherweise auch auf mehreren Maschienen gleichzeitig). In der Informationsverarbeitung ist "skalierbar" aber genau gesehen keine "Ja-Nein"-Entscheidung, sondern nur eine Aussage, wie ein System mehr mehreren (parallelen) Lasten klarkommt.
Absolute/Relative Koordinaten beziehen sich auch auf solche Objekte. Relativ kann z.B. heissen relativ zum Bildschirm, oder relativ zum Elternelement. Ein Bild kann z.B. 50% Breit sein - wobei 100% der Bildschirmbreite entspricht. Oder der Fensterbreite. Es kann aber auch 500px Breit sein - Dann spielt Fenstergrösse, Bildschirmgrösse, etc alles keine Rolle, weils eben absolut ist.
Relative Koordinaten sind Koordinaten, die sich in Wert und Skala nicht an einem fixen Nullpunkt, sondern an einem anderen Punkt orientieren. Anders gesehen, sind absolute Koordinaten relative Koordinaten, die sich Fix auf den Ursprung (0,0) und die Skala (1,1) beziehen.
Polymorphie kenne ich als die (mehr oder weniger intelligente) Selbstmodifizierung eines Programms, also der Manipulation seines eigenen Codes.
Das ist selbstmodifizierender Code.
Polymorphie ist, wenn sich ein gleichelautender Funktionsaufruf je nach übergebenem Datentyp anders verhält:
double add(double x1, double x2);
int add(int x1, int x2);
double add(int x1, double x2);
sind Beispiele für polymorphen Code: Je nach Typ des Übergabeparameters wird eine andere Funktion ausgeführt, obwohl sie alle gleich heißen und gleich aussehen.
Polymorphie kann sich nach diesem Muster sowohl auf Datentypen, Funktionen und Klassen beziehen.
Ereignisverarbeitung dürfte die Art sein, mit der Ereignisse wie Mausclicks gehandlet werden. Das ist sehr spezifisch. Windows-"intern" verläuft das über eine sog. Nachrichtenschleife - Das OS schickt der Applikation, was gerade so abgeht von der Hardware her, also z.B. "Hey App, User hat gerade Enter gedrückt!".
Ereignisverarbeitung ein programmtechnsiches Paradigma, wie Polling ein anderes ist.
Beim Polling fragt ein Programm immer wieder in mehr oder weniger regelmäßigen Abständen nach, ob irgendwelche Tastendrücke, Mausklicks, Ereignisse oder Statiwechsel vorliegen. Bei der Eventgesteuerten Programmierung (oder Ereignisverarbeitung) klopft das System an einer bestimmten Stelle im Programm an, und meldet, daß ein Ereignis aufgetreten ist.
Beim Polling mußt du von vorneherein wissen, welche Ergenisse und Treiber du abfragen willst, dafür ist das Prinzip eingängig und einfach.
Ereignisverarbeitung ist ungleich mächtiger, aber auch komplizierter, da dieses System "out of the box" erweiterbar ist. Wenn beim System ein Ereignis aufschlägt, mit dem du nichts anfangen kannst, ignorierst du es. Beim Polling mußt du jedes Ereignis einzeln abfragen, bei der Ereignisverarbeiung klopft jedes Ereignis bei dir an, z.B. Tastendrücke, oder daß dem Drucker Papier fehlt.
Windows, bzw. fast alle grafischen Oberflächen, basieren im Kern auf Ereignisverarbeitung. Ereignisverarbeitung bedingt ein Konzept der Nebenläufigkeit, Polling ist klassisches Singletasking.
Listener-Konzept assoziiere ich mit Sockets. Aber kann auch gut sein, dass das was anderes ist... Prinzip dort: Socket wird halt in den listen-mode gesetzt, und wenn ne eingehende Verbindung kommt, wird ein Event ausgelöst, und dann akzeptiert das Socket die Verbindung (Oder natürlich auch nicht :D) und der Datenaustausch geschieht.
Der Listener ist eng mit der Ereignisverarbeitung verknüpft. Ein Listener ist die Tür, an die das System anklopft, wenn es Ereignisse eines bestimmten Types vorliegen hat, und die an dein Programm melden will. So hat jedes (Bildschirm-)Fenster intern einen Listener, der alle Ereignisse entgegennimmt, die dieses Fenster betreffen, z.B. Mausbewegungen, Klicks, ob es verschoben oder geschlossen wird, oder die Anfrage vom System, daß es sich neuzeichnen soll. Der Listener eines Fenster empfängt alle Ereignisse, die dann diesem Fenster zugeordnet sind.
Kriege ich dafür ein Diplom?
Tuts ein Fleißkärtchen? Für'n Diplom muß man schon etwas mehr leisten... ;-)
Und bevor mich jemand haut: Daß das ganze so abstrakt geschrieben ist, ist pure Absicht. ich bin der Meinung, daß wir hier zwar helfen, aber nicht die Arbeit anderer erledigen sollten. Ein *bischen* Beschäftigung mit dem Thema, welchem auch immer, ist schon abgebracht und nötig. Und Ausreden, wie "Ich muß mich um soviel anderes kümmern", oder "die Zeit ist so knapp", die zählen nicht. Ich helfe gern auf die Sprünge, zeige die Richtung, aber laufen muß jeder selber.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.