FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

Fragen vor der P2/3-Prüfung

Fragen vor der P2/3-Prüfung 2004-02-15 17:22
Anonymer User
Hallo!

Ich lerne grad' für die P2/3 Prüfung bei Lamersdorf und habe noch ein paarungeklärte Fragen. Mir ist bewusst, dass es recht viele sind, aber auch nur einige Antworten wären schon sehr hilfreich. Wäre also schön, wenn ihr Eure Gedanken hier mal anhängen könntet:

Aus welchen Teilen genau besteht die Signatur (Name, Rückgabewert, Parameter)?
Was sind akutelle und formale Parameter?
Was ist - bezüglich ADTs - der Unterschied zwischen Axiomen und Funktionen?
An wen (Klient/Dienstleister) richten sich die Vor- und Nachbedingungen?
Was ist upcast und downcast?
Wo ist der Unterschied zwischen Klasse und Typ?
Was ist der Heap?
Was sind namespaces?
Wie funktioniert "synchronized" in Java?
Wo ist der Unterschied zwischen Klassenschnittstellen und Objektschnittstellen?
Kann man eine Subklasse der Klasse Array erzeugen? Warum (nicht)?
Was ist mit der Abstraktion von der vonNeumann-Maschine gemeint?

Vielen Dank!

Re: Fragen vor der P2/3-Prüfung 2004-02-15 17:25
Anonymer User
wie wäre es wenn du mal das p2 script durchblätterst??
also nach meiner meinung nach findest du da auf mindestens die hälfte der fragen die antwort :-)

Re: Fragen vor der P2/3-Prüfung 2004-02-15 17:37
Anonymer User
Aber Danke, die Fragen sind bestimmt nicht ausgeschlossen in der Prüfung. Mehr davon!

Re: Fragen vor der P2/3-Prüfung 2004-02-15 18:55
Fred
Was sind akutelle und formale Parameter?
Formale Parameter werden bei der Definition von Methoden in der Parameterliste angegeben (initialisierte Variablen), aktuelle Parameter beim tatsächlichen Aufruf (Werte). Man sagt auch, dass beim Methodenaufruf die aktuellen Parameter an die formalen GEBUNDEN werden.

public int foo(int x) { x = x+1; // ja, man kann die Variablen auch ganz normal verändern... return x; } public int bar() { return foo(42); } In diesem Beispiel ist x ein formaler Parameter und 42 ein aktueller.

An wen (Klient/Dienstleister) richten sich die Vor- und Nachbedingungen?
Der Dienstleister erwartet vom Klienten Vorbedingung und sichert dafür Nachbedingen zu. Die Frage find ich doof gestellt, denn beides wird beim Dienstleister definiert…

Was ist upcast und downcast?
Der Downcast ist ein Cast des Typs in einen spezielleren Untertyp (Unterklassen definieren Untertypen) und ist gefährlich, weil es auch mal schiefgehen kann.
Der Upcast ist ungefährlich, weil ein Objekt eines Untertyps u eines Typs t eben immer auch des Typs t ist.

Wo ist der Unterschied zwischen Klasse und Typ?
Java ist eine typisierte Sprache, d.h. Variablen sind immmer von einem bestimmten Typ (von Polymorphie jetzt mal abgesehen). Der Typ legt die Breite im Speicher, die möglichen Werte und die gültigen Operationen auf Variablen des Typs fest. Wir unterscheiden zwischen Basistypen (int, char…), welche "einfach da" sind und Klassentypen, welche erst durch Klassen definiert werden. Jede Klasse definiert einen Typ. Die Klasse String definiert z.B. den Typ String.

Was ist der Heap?
Auf dem Heap werden dynamisch Objekte angelegt.

Was sind namespaces?
Der Bereich, in dem Bezeichner gültig sind. Beispielsweise kann in einem Quelltext die Variable i problemlos mehrmals definiert werden, weil sie jeweils in verschiedenen Funktionen ihren Namespace hat.

Wo ist der Unterschied zwischen Klassenschnittstellen und Objektschnittstellen?
Eine Klassenschnittstelle definiert die Methoden, die man auf einer Klasse aufrufen kann. Eine Beispielmethode ist Math.sqrt(). Analog definiert eine Objektschnittstelle diejenigen Methoden, welche ich auf einem Objekt aufrufen kann (welches ich also ggf. noch erzeugen muss).

Jetzt mal so ausm Kopp, keine Garantie auf Richtigkeit

Re: Fragen vor der P2/3-Prüfung 2004-02-15 19:41
Slater
Aus welchen Teilen genau besteht die Signatur (Name, Rückgabewert, Parameter)?
Signatur einer Operation?
Sichtbarkeitsmodifikator Rückgabewert Name ( Parameter)
oder wie?
Was ist - bezüglich ADTs - der Unterschied zwischen Axiomen und Funktionen?
Was ist mit der Abstraktion von der vonNeumann-Maschine gemeint?
ähh was ist das/ Beispiel/ Zusammenhang?
Kann man eine Subklasse der Klasse Array erzeugen? Warum (nicht)?
ob man das kann, kannst du doch einfach in Java ausprobieren,

sinnvoll ist das nicht, da die Klasse Array nie instanziiert wird,
sie bietet nur statische Operationen zur Arraybearbeitung

hat mit Arrayobjekten wie String[] x = new String[ 10 ]; nix zu tun
Wie funktioniert "synchronized" in Java?
um überhaupt das grundlegende Prinzip und alle Besonderheiten zu verstehen
kann man doch in einem netten Buch das Kapitel dazu durchlesen,
soll jetzt jemand einen längeren Text schreiben oder ist da eine genauere Frage gemeint?

allgemein:
synchronized ermöglicht den exklusiven Zugriff auf Operationen (oder Teilen davon) in Objekten,

Re: Fragen vor der P2/3-Prüfung 2004-02-15 22:05
Anonymer User
Fred, Slater, vielen Dank erstmal!

Slater, bist Du sicher, dass der Sichtbarkeitsmodifikator mit zur Signatur gehört?

Das mit den Axiomen und Funktionen raff' ich nicht, weil die doch eigentlich das gleiche definieren, nämlich welche methoden was zurückgeben und was danach noch vorliegt.

wieso wird die array-klasse nie instanziiert? ich sage doch z.B. int[] foo = *new* int[ 10 ]; Was ist denn dann foo? Kein Object der Array-Klasse, sondern? Und was ist dann foo.length? Ein Zugriff auf ein public-attribut in der array-klasse?

Re: Fragen vor der P2/3-Prüfung 2004-02-15 22:06
leif
An wen (Klient/Dienstleister) richten sich die Vor- und Nachbedingungen?
Das Zeug nennt sich ja auch "Vertragsmodell". Und an wen wenden sich Vertragsklauseln? Üblicherweise an beide.

Aber etwas detailierter (Vertragsmodel in a Nutshell):
Wie Fred schon sagte, werden Vor- und Nachbedingungen vom Dienstleister definiert. Und wenn der Klient sicherstellt, daß die Vorbedingungen erfüllt sind, dann garantiert der Dienstleister, daß die Nachbedingungen erfüllt sein werden.

Wo ist der Unterschied zwischen Klasse und Typ?
In OO-Sprachen werden oftmals Klassen benutzt, um Typen zu definieren. Das Konzept des "Typs" gibt es natürlich aber auch unabhängig von Klassen. Und auch in OO-Sprachen werden nicht immer alle Typen durch (intanziierbare) Klassen definiert: Z.B. in Java werden auch durch Interfaces und abtrakte Klassen Typen definiert. Und dann gibt es in Java auch noch die Basistypen, die ebenfalls nicht durch Klassen definiert sind.

Java ist eine typisierte Sprache, d.h. Variablen sind immmer von einem bestimmten Typ (von Polymorphie jetzt mal abgesehen).
Huh? Auch mit Polymorphie hat eine Variable immer genau einen (statischen) Typ.

Was ist der Heap?
Der Heap (seltsamer deutscher Name: Halde) ist das Konzept von Speicher, in dem ungeordnet Speicherbereiche reserviert werden können.

Aus welchen Teilen genau besteht die Signatur (Name, Rückgabewert, Parameter)?
Da gibt es unterschiedliche Definitionen:

In der Java Language Specification gehören Name, sowie Anzahl und Typen der Parameter dazu, aber nicht der Typ des Rückgabewertes.

An anderen Stellen wird der Rückgabewert aber oft schon, dafür aber nicht der Name zur Signatur gezählt.

Wie funktioniert "synchronized" in Java?
um überhaupt das grundlegende Prinzip und alle Besonderheiten zu verstehen kann man doch in einem netten Buch das Kapitel dazu durchlesen, soll jetzt jemand einen längeren Text schreiben oder ist da eine genauere Frage gemeint?

allgemein:
synchronized ermöglicht den exklusiven Zugriff auf Operationen (oder Teilen davon) in Objekten,
ACK. Die genauen Details sind keineswegs trivial. Da müßte man ggf. etwas weiter ausholen und das Speichermodell von Java erläutern. Für eine Prüfung wird das Overkill sein, aber wer neugierig ist, kann in der JSR 133 FAQ bei der Frage "What does synchronization do?" anfangen.

Re: Fragen vor der P2/3-Prüfung 2004-02-15 22:17
leif
wieso wird die array-klasse nie instanziiert? ich sage doch z.B. int[] foo = *new* int[ 10]; Was ist denn dann foo? Kein Object der Array-Klasse, sondern? Und was ist dann foo.length? Ein Zugriff auf ein public-attribut in der array-klasse?
Slater meinter mit der "Klasse Array" vermutlich java.lang.reflect.Array. Das ist nur eine Hilfsklasse.

Objekte, die z.B. mit "new int[ 10]" angelegt werden, sind nicht Exemplare irgendeiner Klasse.

Re: Fragen vor der P2/3-Prüfung 2004-02-16 03:34
MoKrates
Objekte, die z.B. mit "new int[10]" angelegt werden, sind nicht Exemplare irgendeiner Klasse.

Aber selbstverstaendlich sind sie das. Eine Containerklasse, die 10 ints aufnehmen kann. Die eine oeffentliche int-Variable "length" hat, usw. Mit "new" instantiiere ich Klassen. Wenn ich "new int[10]" schreiben kann, dann muss das heissen, dass "int[10]" einen Aufruf eines Konstruktors einer Klasse darstellt.

Eigentlich muesste man sich das auch ueber das reflect API ausgeben lassen koennen, was das fuer eine Klasse ist.

MoKrates

Re: Fragen vor der P2/3-Prüfung 2004-02-16 18:12
Anonymer User
Hallo,
ich bin gerade beim P2-Lernen…Kann mir jemand erklären, was Polymorphie ist?

Re: Fragen vor der P2/3-Prüfung 2004-02-16 20:32
Fred
Hallo,
ich bin gerade beim P2-Lernen…Kann mir jemand erklären, was Polymorphie ist?
Polymorphie ist Vielgestaltigkeit [img]http://www.fb18.de/gfx/24.gif[/img]

In Java kann eine Klasse Unter von einer Klasse Ueber erben, und zwar per extends. Jede Klasse erbt, falls extends nicht angegeben wird, implizit von der Klasse Object.
public class Unter extends Ueber { //... } Um Polymorphie zu verstehen, muss man das Konzept des statischen und des dynamischen Typs begreifen.

Der statische Typ wird bei der Deklaration einer Variable festgelegt:
Ueber x; // der statische Typ von x ist Ueber
Der dynamische Typ wird erst bei der Zuweisung festgelegt und kann sich während des Programmablaufs ständig ändern:
Ueber x; // der statische Typ von x ist Ueber x = new Unter(); // der dynamische Typ von x ist Unter Object y = new Unter(); // statisch: Objekt, dynamisch: Unter x = new Ueber(); // jetzt wurde der dynamische Typ von x geändert! Die Tatsache, dass wir einer Variable vom statischen Typ Ueber einen Ausdruck vom dynamischen Typ Unter zuweisen können, verdanken wir der Polymorphie. So können wir z.B. auch in die Standard Collections Objekte vom Typ String oder anderer Klassen packen, "obwohl" im Funktionskopf ein Object erwartet wird (alle Klassen erben wie gesagt von Object).

EDIT: Eine Zuweisung in der Form variable = ausdruck; klappt also auf jeden Fall, wenn der Typ des Ausdrucks gleich dem statischen Typ der Variable ist oder ein Untertyp diesen statischen Typs (Unterklassen definieren Untertypen).

EDIT: Der Typ eines Ausdrucks, welcher nur aus einer Variable besteht, ist der statische Typ dieser Variable [thx to Mokrates]. Ist dieser zu allgemein für die Zuweisung, muss ein Downcast vorgenommen werden, welcher eine ClassCastException werfen kann. Beispiel:
public class Poly { public static void main(String args[]) { Exception e; ClassCastException cce; e = new ClassCastException("Spezielle Beispielausnahme"); // statischer Typ von e ist Exception, dynamischer Typ ist ClassCastException cce = (ClassCastException) e; // der Typ des Ausdrucks e ist sein statischer Typ, also Exception // um die Zuweiung vorzunehmen, muss der Downcast vorgenommen werden // dieser klappt wegen des dynamischen Typs von e e = new Exception("Allgemeine Beispielausnahme"); // statischer Typ von e ist Exception, dynamischer Typ ist nun ebenfalls Exception cce = (ClassCastException) e; // e kann nicht in ClassCastException downgecastet werden // (man kann nicht tiefer casten als bis zum dynamischen Typ) // java quitiert dies mit einer ClassCastException } }

Re: Fragen vor der P2/3-Prüfung 2004-02-17 00:01
MoKrates
Der Typ eines Ausdrucks, welcher nur aus einer Variable besteht, ist meine ich der dynamische Typ dieser Variable…

Eben nicht.

Object x = "hallo, welt"; System.out.println("" + x.charAt(2)); wird fehlschlagen, weil eben nicht vom dynamischen Typ, sondern vom statischen Typ ausgegangen wird. Allerdings ist es moeglich, hier einen Downcast zu machen: System.out.prinln("" + ((String)x).charAt(2));
MoKrates

Re: Fragen vor der P2/3-Prüfung 2004-02-17 00:12
low_level
Objekte, die z.B. mit "new int[ 10]" angelegt werden, sind nicht Exemplare irgendeiner Klasse.

Ein [tt] int[] [/tt] hat die Signatur [tt] [I [/tt] .

Re: Fragen vor der P2/3-Prüfung 2004-02-17 00:15
MoKrates
?

MoKrates

Re: Fragen vor der P2/3-Prüfung 2004-02-17 00:22
MoKrates
public final class Class
extends Object
implements Serializable

Instances of the class Class represent classes and interfaces in a running Java application. Every array also belongs to a class that is reflected as a Class object that is shared by all arrays with the same element type and number of dimensions. The primitive Java types (boolean, byte, char, short, int, long, float, and double), and the keyword void are also represented as Class objects.

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html

MoKrates

Re: Fragen vor der P2/3-Prüfung 2004-02-17 00:27
low_level
public class Foo { public static void main(String[] args) throws ClassNotFoundException { int[] a = new int[10]; Class ca = a.getClass(); Class cinta = Class.forName("[I"); if (ca != cinta) { System.err.println("Hmmm, doch nicht gleich."); } else { System.out.println("Ich hab's ja gesagt."); } } }

Re: Fragen vor der P2/3-Prüfung 2004-02-17 00:30
MoKrates
*g* entspricht mal wieder nicht der Spezifikation :> (ein int[10] und ein int[11] muessten verschiedene Signaturen haben).

Aber, okok, ich glaubs Dir ja. "[I" ist nur ein recht merkwuerdiger Name, dass musst Du zugeben.

MoKrates

Re: Fragen vor der P2/3-Prüfung 2004-02-17 00:38
low_level
*g* entspricht mal wieder nicht der Spezifikation :> (ein int[10] und ein int[11] muessten verschiedene Signaturen haben).

Aber, okok, ich glaubs Dir ja. "[I" ist nur ein recht merkwuerdiger Name, dass musst Du zugeben.

MoKrates

Wir sind hier nicht in C++, sondern in Java. Da gibt es eine "Klasse" [tt] IntArray [/tt] , die ungefähr so aussieht:

public class IntArray { public IntArray(int length) { fLength = length; } final int fLength; public int get[int index] { /* ... */ } public void set[int index, int value] { /* ... */ } }
In C++ dagegen sind [tt] int[10] [/tt] und [tt] int[11] [/tt] verschiedene Typen:

roland@wwid:~ > [b]cat Mokrates.cpp[/b] extern int main(void) { int a[10], b[11]; a = b; return 0; } roland@wwid:~ > [b]c++ -o Mokrates Mokrates.cpp[/b] Mokrates.cpp: In function `int main()': Mokrates.cpp:5: error: incompatible types in assignment of `int[11]' to ` int[10]'

Re: Fragen vor der P2/3-Prüfung 2004-02-17 00:48
low_level
Aber, okok, ich glaubs Dir ja. "[I" ist nur ein recht merkwuerdiger Name, dass musst Du zugeben.

Ich finde den Namen eher praktisch. Erstens kann niemand eine Klasse mit dem Namen "[I" definieren, zweitens deutet die Darstellung auf ein Array hin und drittens ist sie kurz.

Re: Fragen vor der P2/3-Prüfung 2004-02-17 01:23
MoKrates
Also, in C ware "a" bei Deklaration als "int a[10]" gar kein L-Wert, und damit waer dem Ding auch nix zuzuweisen. Muesste das in C++ nicht genauso sein?

MoKrates

Re: Fragen vor der P2/3-Prüfung 2004-02-17 04:23
low_level
Also, in C ware "a" bei Deklaration als "int a[10]" gar kein L-Wert, und damit waer dem Ding auch nix zuzuweisen. Muesste das in C++ nicht genauso sein?

Sorry, ich hab's mit Delphi verwechselt. :)

#include <stdio.h> int main(void) { int a[1], b[1]; a[0] = 1; b = a; a[0] = 2; printf("%d\n", b[0]); return 0; }
A modifiable lvalue is an lvalue that does not have array type, […]

(c9x.pdf)

Re: Fragen vor der P2/3-Prüfung 2004-02-17 10:17
Slater
*g* entspricht mal wieder nicht der Spezifikation :> (ein int[10] und ein int[11] muessten verschiedene Signaturen haben).

MoKrates

Every array also belongs to a class that is reflected as a Class object that is SHARED BY ALL ARRAYS with the same element type and number of dimensions.
wiederspricht sich doch nicht?
Dimension ist int[] int[][]

Re: Fragen vor der P2/3-Prüfung 2004-02-17 11:36
MoKrates
Oh, ja. Mein Fehler. Danke Slater!

MoKrates

Re: Fragen vor der P2/3-Prüfung 2004-02-17 19:35
xeen9
Es gibt so viele Prüfungsprotokolle zu P2/3 mit guten Fragen und teilweise auch mit Antworten, dass es mir sinnvoll erscheint, einen Fragenkatalog mit Musterantworten anzulegen.

Die Idee hatte aber bestimmt schonmal jemand vor mir. Deshalb die Frage: wer hat so etwas schon gemacht oder weiß, dass es sowas gibt?

Re: Fragen vor der P2/3-Prüfung 2004-02-17 23:47
leif
Disclaimer: Das Untenstehende gilt ausdrücklich nur für Java.

Objekte, die z.B. mit "new int[10]" angelegt werden, sind nicht Exemplare irgendeiner Klasse.
Aber selbstverstaendlich sind sie das.
In Java haben Arrays einige Eigenschaften, als ob es Klassen zu ihnen gibt, verhalten sich z.T. aber auch nicht so:
int[] ar = new int[10]; Class cl = ar.getClass(); // -> Ah, wir können getClass() rufen und bekommen ein Exemaplar der Klasse "Class".

cl.isArray(); // -> Man kann eine Klasse ausdrücklich fragen, ob sie ein Array ist? Scheint doch etwas besonderes zu sein.

cl.getName(); // -> "[I". Hmmm, das ist ein seltsamer Name. Damit kann man sicherlich keine Exemplare erzeugen.

cl.newInstance() // -> InstantiationException. Auch dieser Weg zur Erzeugung neuer Exemplare funktioniert ungewöhnlicherweise nicht.
// Irgendwie scheint dieses "Class"-Objekt doch etwas anders zu sein als andere.

int mods = cl.getModifiers(); Modifier.toString(mods) // -> "public abstract final". Eine Klasse die abstract und final ist? Dann sollten sich gar keine Exemplare bilden lassen. Die gibt es jedoch.


Letztendlich halte ich das für eine Definitionssache. Und in der Definition der Sprache Java steht tatsächlich:
Every array also has a class; the method getClass, when invoked for an array object, will return a class object (of class Class) that represents the class of the array.
[img]http://www.fb18.de/gfx/3.gif[/img] Hmpf.

Wobei die Tatsache, daß man ein Exemplar der Klasse "Class" bekommt offensichtlich wenig aussagt, wenn man sieht, daß es auch für Basisdatentypen Exemplare der Klasse "Class" gibt. [img]http://www.fb18.de/gfx/26.gif[/img]

Re: Fragen vor der P2/3-Prüfung 2004-02-18 00:50
tekai
bzgl. statischer/dynamischer typ:
auf was bezieht sich das? die variable/bezeichner, das objekt oder beides (variable statisch, objekt dynamisch?)

Re: Fragen vor der P2/3-Prüfung 2004-02-18 01:22
MoKrates
cl.newInstance() // -> InstantiationException. Auch dieser Weg zur Erzeugung neuer Exemplare funktioniert ungewöhnlicherweise nicht.
natuerlich nicht. Wie wir schon festgestellt haben, haben alle int[] den Namen "[I". Was fuer eine Klasse jedoch ist das? int[1], int[2] oder vielleicht gar int[3]?

Wobei die Tatsache, daß man ein Exemplar der Klasse "Class" bekommt offensichtlich wenig aussagt, wenn man sieht, daß es auch für Basisdatentypen Exemplare der Klasse "Class" gibt. [img]http://www.fb18.de/gfx/26.gif[/img]

Wie stellst Du das fest? Per literal.getClass()? Also zB
System.out.println(5.getClass().getName());
Ansonsten ist bekannt, dass es zu jedem primitiven Typen eine Containerklasse gibt. (Zu "int" zb heisst diese "Integer")

MoKrates

Re: Fragen vor der P2/3-Prüfung 2004-02-18 10:23
Slater
bzgl. statischer/dynamischer typ:
auf was bezieht sich das? die variable/bezeichner, das objekt oder beides (variable statisch, objekt dynamisch?)

ein Objekt hat genau einen Typ, nämlich den seiner Klasse, punkt

die Variable (Referenz) hat auch genau einen Typ, nämlich den der bei der Deklaration angegeben ist, punkt
-> statischer Typ der Variablen

der Referenz kann man Objekte unterschiedlicher Typen zuweisen
-> verrückterweise spricht man nun von unterschiedlichen dynamischen Typen der Variable,

-> der dynamische Typ gibt an, welcher Objekttyp tatsächlich an einer Variable dranhängt

also um es kurz zu machen: die Sprechweise bezieht sich auf die Variablen,

Re: Fragen vor der P2/3-Prüfung 2004-02-18 11:26
leif
Wobei die Tatsache, daß man ein Exemplar der Klasse "Class" bekommt offensichtlich wenig aussagt, wenn man sieht, daß es auch für Basisdatentypen Exemplare der Klasse "Class" gibt. [img]http://www.fb18.de/gfx/26.gif[/img]
Wie stellst Du das fest? Per literal.getClass()? Also zB
[tt] System.out.println(5.getClass().getName()); [/tt]
Das steht z.B. in der Dokumentation zu der Klasse java.lang.Class, welche Du auch selber etwas früher zitiert hast: [img]http://www.fb18.de/gfx/24.gif[/img]
The primitive Java types (boolean, byte, char, short, int, long, float, and double), and the keyword void are also represented as Class objects.
Natürlich kann man an einem [tt] int [/tt] keine Methoden aufrufen, man erhält diese Exemplare aber über die Containerklassen, z.B. [tt] Integer.TYPE [/tt]
Ansonsten ist bekannt, dass es zu jedem primitiven Typen eine Containerklasse gibt. (Zu "int" zb heisst diese "Integer")
Jein. Die gibt es zwar, aber dazu gibt es (vernünftigerweise) andere Exemplare von "Class": Class intBasis = Integer.TYPE; intBasis.isPrimitive(); // -> true intBasis.getName(); // -> "int" Class intObj = new Integer(1).getClass(); intObj.isPrimitive(); // -> false intObj.getName(); // -> "java.lang.Integer"

Re: Fragen vor der P2/3-Prüfung 2004-02-18 12:17
Anonymer User
sagt mal jungs, guckt ihr euch auch den kram in p3 über deduktion, datalog, prolog op5 usw usf an????

oder total unwichtig????
wie weit sind wir in der vorlesung eigentlich genau gekommen. bin die letzten male nicht dagewesen;-)

Re: Fragen vor der P2/3-Prüfung 2004-02-18 14:15
Anonymer User
Zu diesen eher spezielleren Datenbank-Sachen solltest du imho was erzaehlen koennen (z.B. auf die Frage "Was kennen sie fuer Datenbanken?" koennte man deduktive mitaufzaehlen und im Zuge dessen auch Datalog erwaehnen), aber du brauchst es nicht so genau zu wissen, dass du Datalog Anfragen aufschreiben kannst oder aehnliches (meine ich zumindest; wenn du es genau wissen willst kannst du ja ruhig noch deinen Pruefer fragen)

wie weit sind wir in der vorlesung eigentlich genau gekommen.

Sowohl in P2 als auch P3: Ganzes Skript.

Soll heissen: Auch Fragen zu Agenten sind moeglich.

Cheers.

Re: Fragen vor der P2/3-Prüfung 2004-02-18 17:11
Gosi
Hi

Habe da mal eine Frage zu UML Klassen Diagramm. Klassen sind eckig und Exemplare haben abgerundete Ecken. Was ist mit Klassenvariablen und Klassenoperationen?? Im Script von 2001 sind die mit abgerundeten Ecken gemalt. Ist das richtig???

habe da noch was vergessen. Wenn ich zwei Exemplare mit == oder != vergleiche wird doch geschaut ob es sich um die gleichen Referenzen handelt, oder?? mit equals wird halt geschaut ob ihr Zustand gleich ist, oder halt was man da so programiert hat.

Re: Fragen vor der P2/3-Prüfung 2004-02-19 10:00
Anonymer User
Klassen sind eckig und Exemplare haben abgerundete Ecken.

Im Skript ja. In UML Buechern findet man das nicht umbedingt.
Da sind Klassen "eckig", aber Objekte auch. Sie unterscheiden
sich dann dadurch, dass in Klassen ganz oben der Klassenname steht, in Objekten bspw. "Objektname:Klassenname" und dies insb. unterstrichen (und dass man es einfach dazu sagt, meistens werden UML-Diagramme ja fuer Skizzen benutzt).

Was ist mit Klassenvariablen und Klassenoperationen?? Im Script von 2001 sind die mit abgerundeten Ecken gemalt. Ist das richtig???

?? Das verstehe ich jetzt nicht. Die Klassenvariablen/operationen sind "Teil" der Klasse/des Objektes. Allgm. werden sie einfach unterstrichen.

Wenn ich zwei Exemplare mit == oder != vergleiche wird doch geschaut ob es sich um die gleichen Referenzen handelt, oder??

Ja.

mit equals wird halt geschaut ob ihr Zustand gleich ist, oder halt was man da so programiert hat.

Ja. (Insb. letzteres!)

Cheers.


Re: Fragen vor der P2/3-Prüfung 2004-02-21 14:32
Anonymer User
Hallo,

kann mir jemand erklären, was eine Domäne und ein Wertebereich bzg. ERM und RM ist.

Vielen Dank

Re: Fragen vor der P2/3-Prüfung 2004-02-21 22:00
Anonymer User
ERM und RM haben ja mit den Relationen aus der Mathematik zu tun, daher Domaene und Wertebereiche wie auch dort definiert.

Seien zwei Mengen A und B gegeben sowie eine Relation R als Teilmenge von A x B. Dann ist die Domaene von R gerade jene Elemente x aus A fuer die auch (x,b) aus R (mit b aus B beliebig) gilt. Entsprechend fuer B und den Wertebereich.

Cheers.