Legen Firmen mehr Wert auf Java, als auf C++? Generelle Fragen zu diesem Thema.



  • net schrieb:

    Optimizer schrieb:

    Definitiv falsches Verständnis von Vererbung.
    Vererbung ist nicht da, um tolle Funktionen auf eine andere Klasse zu übertragen.

    macht nichts. mit c++ würde es aber gehen.

    Deshalb hast du dann Vererbung immer noch falsch angewendet.



  • Optimizer schrieb:

    net schrieb:

    Optimizer schrieb:

    Definitiv falsches Verständnis von Vererbung.
    Vererbung ist nicht da, um tolle Funktionen auf eine andere Klasse zu übertragen.

    macht nichts. mit c++ würde es aber gehen.

    Deshalb hast du dann Vererbung immer noch falsch angewendet.

    Wieso soll Vererbung nicht dazu da sein, Funktionen zu vererben?
    Wenn Vererbung also solche diese Funktionalitaet nicht bieten wuerde, haetten wir doch nur abstrakte interfaces und die selben Funktionen XMal per cut/paste uebernommen.
    Irgendwie hab ich jetzt nicht verstanden was du meinst, oder meinst du das wirklich so wie ichs verstanden habe?



  • Optimizer schrieb:

    Deshalb hast du dann Vererbung immer noch falsch angewendet.

    und damit ich das nicht wieder tu' sag mir bitte, wie man sowas normalerweise in java macht.



  • Kindergarten



  • net schrieb:

    Optimizer schrieb:

    Deshalb hast du dann Vererbung immer noch falsch angewendet.

    und damit ich das nicht wieder tu' sag mir bitte, wie man sowas normalerweise in java macht.

    Genauso wie in jeder anderen Sprache. Vererbung benutzt man nicht, weil man in der anderen Klasse jetzt auch solche Funktionen haben will.
    Sondern um eine Typhierarchie zu schaffen, bei der Vererbung einer "ist eine Art von" oder "ist ein Spezialfall von" bedeutet.

    Und nicht "Klasse A kann was, Klasse B kann was und ich will, dass Klasse C das auch beides kann".



  • Irgendwie hab ich jetzt nicht verstanden was du meinst, oder meinst du das wirklich so wie ichs verstanden habe?

    Nein, so meine ich es natürlich nicht. net's Motivation für Vererbung halte ich einfach für falsch. Das ist der Punkt.



  • Optimizer schrieb:

    Genauso wie in jeder anderen Sprache.

    das habe ich dann auch getan bzw. tun müssen 😡

    Optimizer schrieb:

    Vererbung benutzt man nicht, weil man in der anderen Klasse jetzt auch solche Funktionen haben will.
    Sondern um eine Typhierarchie zu schaffen, bei der Vererbung einer "ist eine Art von" oder "ist ein Spezialfall von" bedeutet.

    dann sollte mal endlich einer java++ erfinden. da lassen sich dann nur noch eigenschaften vererben. methoden nicht, damit nicht noch so'n dahergelaufener wicht wie ich das falsch anwendet



  • Eigenschaften (wie z.B. Compareable) vererbt man bevorzugt mit Interfaces. Es gibt auch sinnigerweise ein Interface, was Compareable heißt, btw.
    Wie, wo und wann man Vererbung anwendet ist im Prinzip in jeder Objektorientierten Sprache ähnlich, ebenso wie die Tatsache, dass man Mehrfachvererbung gerne vermeidet. Ich verstehe dein Problem nicht.
    Ich empfehle dir übrigens, dich mit der Klassenbibliothek von Java vertraut zu machen, da wird sehr stark von Vererbung Gebrauch gemacht, da lässt sich sicher was draus lernen.



  • Hi Leute,

    redet doch bitte nicht aneinander vorbei.

    Das Merhfachvererbung böse/gefährlich ist ließt man nur in Java/.NET- Büchern. Purer Schwachsinn. Bloß weil man es in Java und .NET nicht haben kann ist es gleich böse. Ich halte
    diese Verbreitung von falscher Wahrheit für übele Propaganda.

    Ich muss Optimizer recht geben, dass viele Java und .NET- Programmierer (vor allen Anfänger) Klassen eigentlich nur im Sinne von Namespaces verwenden. Viele behaubten dann objektorientiert vorzugehen, da sie ja Klassen benutzen. Sprüche wie "Das kapsel ich mal eben" machen mir bei den Leuten echt Angst. Schließlich muss ich die resultierende Klasse mit ein paar Eigenschaften und Funktionen dann benutzen. Ich bin da mal ein paar Klassen von solchen Leuten durchgegangen. Hab vor jeder Methode und Variable 'static' vorgeschrieben. Das Programm läuft immer noch genauso gut 🙂
    Das hat wirklich nichts mit OOP zu tun.
    Dann kommen die Schlaumeier an, so wie einer hier im Thread, und sagt:"Oh, die Funktion Waschen() hattet ich schon mal geschreiben. Das war in der Klasse Auto. Ich leite mal meine Klasse "Klo" von Auto ab und hab die Funktion dann ja schon implementiert. Tja, oop machts möglich".
    Dann könnte ich innerlich schreien...



  • AndreasW schrieb:

    Hi Leute,

    redet doch bitte nicht aneinander vorbei.

    Das Merhfachvererbung böse/gefährlich ist ließt man nur in Java/.NET- Büchern. Purer Schwachsinn. Bloß weil man es in Java und .NET nicht haben kann ist es gleich böse. Ich halte
    diese Verbreitung von falscher Wahrheit für übele Propaganda.

    Ich muss Optimizer recht geben, dass viele Java und .NET- Programmierer (vor allen Anfänger) Klassen eigentlich nur im Sinne von Namespaces verwenden. Viele behaubten dann objektorientiert vorzugehen, da sie ja Klassen benutzen. Sprüche wie "Das kapsel ich mal eben" machen mir bei den Leuten echt Angst. Schließlich muss ich die resultierende Klasse mit ein paar Eigenschaften und Funktionen dann benutzen. Ich bin da mal ein paar Klassen von solchen Leuten durchgegangen. Hab vor jeder Methode und Variable 'static' vorgeschrieben. Das Programm läuft immer noch genauso gut 🙂
    Das hat wirklich nichts mit OOP zu tun.
    Dann kommen die Schlaumeier an, so wie einer hier im Thread, und sagt:"Oh, die Funktion Waschen() hattet ich schon mal geschreiben. Das war in der Klasse Auto. Ich leite mal meine Klasse "Klo" von Auto ab und hab die Funktion dann ja schon implementiert. Tja, oop machts möglich".
    Dann könnte ich innerlich schreien...

    du schreibst genausoviel muell wie alle anderen auch. Das mit der propaganda ist nur noch laecherlich. du traust bestimmt in 30 jahren auch noch pointer nach. und wenn man objekte erstellt, dann ist das sehr wohl objektorientiert - auch wenn ich NULL vererbung benutze. denoch noch mal ueber das wort OBJETKorientiert nach


  • Mod

    AndreasW schrieb:

    Dann kommen die Schlaumeier an, so wie einer hier im Thread, und sagt:"Oh, die Funktion Waschen() hattet ich schon mal geschreiben. Das war in der Klasse Auto. Ich leite mal meine Klasse "Klo" von Auto ab und hab die Funktion dann ja schon implementiert. Tja, oop machts möglich".

    Schlechtes Beispiel. Als ob es das nicht geben würde... 🙂

    http://www.users-web.de/funpics/Auto_Verkehr_2/Seifenkisten_Klo.htm



  • löl, genau sowas kommt raus, wenn man Vererbung falsch anwendet. 😃



  • Optimizer schrieb:

    löl, genau sowas kommt raus, wenn man Vererbung falsch anwendet. 😃

    ja, aber dabei erben klassen voneinender, die wirklich nichts gemeinsam haben. bestenfalls kommt ein "motorisiertes klo mit 4 rädern" dabei raus. aber darum geht's mir nicht bzw. hatte ich nie vor. ich habe gleich zugriff auf das programm - dann stelle ich mal eine frage anhand eines konkreten beispiels...



  • hallo. wieder da....

    also:
    ich habe eine kleine gui-anwendung (awt). die fensterchen bestehen aus
    von 'Frame' abgeleiteten klassen. diese fenster haben keine titelzeile
    sind aber trotzdem mit der maus verschiebbar - dazu mussten methoden
    wie 'mouseClicked' usw. überschrieben werden.
    nun brauche ich noch eine von 'Dialog' abgeleitete klasse, die die gleiche
    funktionalität haben soll, also keine titelzeile, aber verschiebbar.
    nun wäre es doch sinnvoll, die verschiebe-operationen in eine eigene klasse
    auszulagern, und beide 'Frame' und 'Dialog' -abkömmlinge von dieser erben zu lassen. das geht aber nicht weil java nur einfachvererbung erlaubt. in c++ könnte man das prima mit mehrfachvererbung lösen.

    ich habe es dann so gemacht:
    1. eine eigene verschiebe-operations-klasse (implementiert MouseListener, MouseMotionListener) erstellt, ähnlich wie die java-adapterklassen.
    2. in den beiden 'Frame'- und 'Dialog'-abkömmlingen werden instanzen davon erzeugt und mit den 'addXXXListener()'-methoden angemeldet.

    das funzt zwar, sieht aber komisch aus. es geht nur, weil java.awt.Component die Listeners verwalten kann d.h. ist also zufall, dass es hierbei recht einfach geht.

    meine frage nun:
    wie macht sowas ein 'richtiger' java-programmierer?
    und bitte nicht wieder antworten 'du hast ja keine ahnung von vererbung o.ä.'
    wenn ihr es besser wisst, dann erzählt es bitte....


  • Mod

    Ich würde es vermutlich genauso machen.



  • Gregor schrieb:

    Ich würde es vermutlich genauso machen.

    danke für die antwort 🙂
    ...aber meines erachtens nach ist es doch ein workaround weil keine mehrfachvererbung existiert oder sehe ich das falsch?


  • Mod

    net schrieb:

    ...aber meines erachtens nach ist es doch ein workaround weil keine mehrfachvererbung existiert oder sehe ich das falsch?

    Das sehe ich anders. In deinem Fall hier wäre Mehrfachvererbung absolut unangebracht. Dadurch würdest du die öffentliche Schnittstelle mit Methoden erweitern, die einfach nicht für die Öffentlichkeit bestimmt sind. Ein Fenster ist nunmal kein Listener (auch wenn es recht populär ist, ein Fenster ein Listener-Interface implementieren zu lassen).

    Würde es Sinn machen, wenn ich mir dein Fenster nehme und es einem anderen Fenster als Listener zuweise? Ich glaube nicht, oder?



  • Gregor schrieb:

    ...Ein Fenster ist nunmal kein Listener...
    Würde es Sinn machen, wenn ich mir dein Fenster nehme und es einem anderen Fenster als Listener zuweise? Ich glaube nicht...

    ja, stimmt. du hast schon nicht unrecht...
    einfach gut gemacht, diese java library...



  • net schrieb:

    Magoon schrieb:

    Surkevin schrieb:

    Wie siehts mit Java vs. PHP aus?

    😕 Meinst Du für Webentwicklung? Da ist Java IMHO die mächtigste Sprache!

    also ich würde für serverseitige webentwicklung lieber php nehmen als mich mit dem blöden tomcat rumzuärgern. java kann ich hier nur empfehlen, wenn man sowieso schon eine java-anwendung hat und dann noch ein webinterface dafür braucht. oder eben applets, wenn's im browser laufen soll.

    Ich habe das auch mehr als Vergleich der beiden Sprachen gesehen. Für eine einfache dyn. Website ist PHP sicherlich ideal. Muss man aber große Lasten bewältigen oder eine komplexe serverseitige Anwendung entwicklen, reicht PHP sowohl von dem Sprachumfang, als auch von der Performance absolut nicht aus.

    net schrieb:

    ich habe es dann so gemacht:
    1. eine eigene verschiebe-operations-klasse (implementiert MouseListener, MouseMotionListener) erstellt, ähnlich wie die java-adapterklassen.
    2. in den beiden 'Frame'- und 'Dialog'-abkömmlingen werden instanzen davon erzeugt und mit den 'addXXXListener()'-methoden angemeldet.

    das funzt zwar, sieht aber komisch aus. es geht nur, weil java.awt.Component die Listeners verwalten kann d.h. ist also zufall, dass es hierbei recht einfach geht.

    Das müsste IMHO aber der richtige objektorientierte Ansatz sein.

    Bei Vererbung sollte man immer sagen können "is a". In Deinem Fall ist wie Gregor schon schrieb ein Listener kein Dialog.



  • Magoon schrieb:

    Ich habe das auch mehr als Vergleich der beiden Sprachen gesehen. Für eine einfache dyn. Website ist PHP sicherlich ideal. Muss man aber große Lasten bewältigen oder eine komplexe serverseitige Anwendung entwicklen, reicht PHP sowohl von dem Sprachumfang, als auch von der Performance absolut nicht aus.

    ...immer das alte Märchen! Irgendwo muß es diesen Satz zum Copy/Paste geben!!!
    Das stimmt so schlicht nicht! Wie immer ist das eine Frage der Planung. Ich betreibe hier ein Intranet, über das im Großhandel Waren verkauft/angeboten/ werden. dabei ist der gesamte Durchlauf durch die Firma abgebildet. Vom Eingang/Erfassung, über die geplanten Stationen bis zur Rechnungsstellung und Statistischen Auswertungen dazu. Komischerweise geht so was in PHP! Sogar Anbindung an externe DB's ist damit kein Problem.
    Natürlich geht so was auch in Perl und es geht auch in Java! Bei Java ist der Overhead am Anfang größer, dafür hat man später einfachere Wartbarkeit/Erweiterbarkeit. Natürlich gibt es viele Argumente für Java bei so etwas, gar keine Frage! Das PHP aber für mehr als eine Hobby-Webpage nicht taugt und bei großen Lasten und umfangreichen Aufgaben schlicht unbrauchbar sei, gehört nun wirklich in den Bereich der Märchen!

    Gruß Karsten


Anmelden zum Antworten