You are not logged in.

A1880

Intermediate

  • "A1880" is male
  • "A1880" started this thread

Posts: 500

Date of registration: Jan 1st 2009

Location: Hanover, Germany

Occupation: Software Engineer

Hobbies: Hilbert Curves

  • Send private message

1

Thursday, January 1st 2009, 5:35pm

Klassen mit Vererbung

Ich habe eine Klasse "clsVehicle" definiert und dazu zwei Unterklassen "clsAuto" und "clsBike".

Dabei habe ich zwei Effekte beobachtet:

- wenn man mit "Me." auf Membervariablen zugreift, bietet der Editor nur die Variablen der

momentan editieren Klasse an. Die Variablen der Superklasse werden nicht angezeigt.

- wenn man "Class_Initialize" mit dem Debugger durchläuft (per F8 Singlestep), verschwindet der Debugger

teilweise im Nirgendwo. Mangels Anzeige des "Call Stacks" sehe ich nicht, wo das Programm steckt.

Ich kann mir nicht erklären, wie das mit den Namespaces bei Klassen gedacht ist.

Insgesamt ist es gegenüber VB6 ein Super-Fortschritt, mit Vererbung arbeiten zu können.

Ein Beispielprogramm auf diesem Sektor wäre eine gute Starthilfe.



Gruß und Dank für Jabaco!

A1880
A1880 has attached the following file:
  • jbproj2.zip (5.11 kB - 459 times downloaded - latest: May 7th 2024, 10:18pm)

Manuel

Administrator

  • "Manuel" is male

Posts: 256

Date of registration: Jul 16th 2008

Location: Erlangen, Germany

Occupation: Software Developer

Hobbies: Jabaco, game theory, text-mining

  • Send private message

2

Thursday, January 1st 2009, 8:58pm

Quoted

- wenn man mit "Me." auf Membervariablen zugreift, bietet der Editor nur die Variablen der momentan editieren Klasse an. Die Variablen der Superklasse werden nicht angezeigt.
es ist schwer den richtigen mittelweg zu finden. jabaco soll die arbeit mit dem java-framework vereinfachen, es soll ein leichter umstieg von vb6 auf jabaco möglich sein und gleichzeitig ein schneller einstieg in eine moderne hochsprache. aus meiner sicht sollte man immer nur die nötigsten informationen anzeigen. wenn du methoden der basisklasse verwenden willst, dann funktioniert das mit "Base."

Quoted

- wenn man "Class_Initialize" mit dem Debugger durchläuft (per F8 Singlestep), verschwindet der Debugger teilweise im Nirgendwo. Mangels Anzeige des "Call Stacks" sehe ich nicht, wo das Programm steckt.
ist bei mir nicht reproduzierbar. wann passiert das genau?

Quoted

Ich kann mir nicht erklären, wie das mit den Namespaces bei Klassen gedacht ist.
mit namespaces kannst du klassen kategorisieren. sie dienen also nur der ordnung und strukturierung.

Quoted

Insgesamt ist es gegenüber VB6 ein Super-Fortschritt, mit Vererbung arbeiten zu können. Ein Beispielprogramm auf diesem Sektor wäre eine gute Starthilfe.
das sehe ich auch so, aber zeitlich bin ich dazu nicht in der lage. vielleicht hast du ja lust sowas zu schreiben? :)

A1880

Intermediate

  • "A1880" is male
  • "A1880" started this thread

Posts: 500

Date of registration: Jan 1st 2009

Location: Hanover, Germany

Occupation: Software Engineer

Hobbies: Hilbert Curves

  • Send private message

3

Friday, January 2nd 2009, 8:31am

Debugger-Fehler nicht reproduzierbar

Hallo Manuel,

danke für die mehr als prompte Antwort. Ich kann mir vorstellen, dass Du Deine Zeit intensiv nutzt.

Auf einem zweiten PC kann ich das Verschwinden des Debugger-Verlaufs auch nicht nachvollziehen.

Vielleicht liegt es daran, dass ich auf meinem Heim-PC einen 22" Widescreen-Monitor einsetze?

Ich werde versuchen, das näher einzugrenzen. Hoffentlich springt dabei auch ein Sample-Programm für Deine Sammlung heraus.

Gruß!


A1880

A1880

Intermediate

  • "A1880" is male
  • "A1880" started this thread

Posts: 500

Date of registration: Jan 1st 2009

Location: Hanover, Germany

Occupation: Software Engineer

Hobbies: Hilbert Curves

  • Send private message

4

Saturday, January 3rd 2009, 6:09pm

Beispiel für Vererbung, Konstruktoren und Namespaces

Hallo Manuel,

hier habe ich mein Beispiel noch etwas ausgebaut.

Man kann daran sehen, wie man Sub-Klassen definiert - eine davon mit Namespace.

Außerdem habe ich getestet, wie das mit Cast() und Isclass() funktioniert.

Eine (vermeintliche?) Macke habe ich gefunden:

Das "Class_Initialize" einer abgeleiteten Klasse wird mehrfach aufgerufen, wenn man ein Objekt instanziiert. Ich vermute, das "Class_Initialize" der abgeleiteten Klasse überschreibt das der Basisklasse. Wenn deren Konstruktor "Class_Initialize" aufruft, startet er die Initialisierung der abgeleiteten Klasse statt die der Basisklasse.

Gruß!

A1880
A1880 has attached the following file:
  • Jbproj3.zip (4.98 kB - 469 times downloaded - latest: Apr 14th 2024, 3:52pm)

This post has been edited 1 times, last edit by "A1880" (Jul 27th 2009, 10:16pm)


Manuel

Administrator

  • "Manuel" is male

Posts: 256

Date of registration: Jul 16th 2008

Location: Erlangen, Germany

Occupation: Software Developer

Hobbies: Jabaco, game theory, text-mining

  • Send private message

5

Sunday, January 4th 2009, 10:09pm

Quoted

Eine (vermeintliche?) Macke habe ich gefunden
momentan solltest du den constructor bevorzugen ...

Quoted

Das "Class_Initialize" einer abgeleiteten Klasse wird mehrfach aufgerufen, wenn man ein Objekt instanziiert. Ich vermute, das "Class_Initialize" der abgeleiteten Klasse überschreibt das der Basisklasse. Wenn deren Konstruktor "Class_Initialize" aufruft, startet er die Initialisierung der abgeleiteten Klasse statt die der Basisklasse.
ja. werde ich ggf. noch ändern.

Rate this thread
WoltLab Burning Board