www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenPraxisMethode mit Objekt in main
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Praxis" - Methode mit Objekt in main
Methode mit Objekt in main < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Praxis"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Methode mit Objekt in main: Tipp, Idee, Korrektur, Hilfe
Status: (Frage) beantwortet Status 
Datum: 18:56 Mi 22.05.2013
Autor: Mija

Hallo,

ich habe eine Klasse Adresse geschrieben, die als Datenelemente name, strasse, stadt und land enthält.
Von dieser Basisklasse stammt meine Klasse Post ab (mit den Datenelementen absender und adressat, beide vom Typ Adresse).
Von dieser Klasse Post stammt dann wiederum die Klasse Brief und die Klasse Paket ab.

Alle diese Klassen beinhalten eine Ausgabemethode (die also immer redefiniert wird)

Nun möchte ich in der Main ein Objekt vom Typ Post, eins vom Typ Brief und eins vom Typ Paket ausgeben lassen (also die Adresse des Absenders und des Adressaten).

Wie kann ich das machen ohne dass ich irgendeinen Operator überlade?

Ich habe es schon mit z.B.
diePost.ausgabe() bzw. diePost.Post::ausgabe() u.ä.
versucht. Geht aber leider nicht.

Ich würde mich sehr über eine Antowrt freuen! :-)

        
Bezug
Methode mit Objekt in main: Antwort
Status: (Antwort) fertig Status 
Datum: 09:55 Do 23.05.2013
Autor: Event_Horizon

Hallo!

Das verstehe ich nciht so ganz.

Du hast ein Paket mit zwei Adressen: Absender und Empfänger.

Dann wirst du mit der Vererbung nicht weit kommen, denn du kannst schlecht zweimal die gleiche Basisklasse für unterschiedliche Daten erben. Denk dran: Der Code der Klasse Adresse ist dann Bestandteil der Klasse Post, und das funktioniert zweimal nicht so richtig.

Viel mehr solltest du in der Paket-Klasse zwei Instanzen der Klasse Adresse erzeugen. Ich machst am Beispiel Brief, warum, merkst du gleich:


1: class Brief{
2:     Adresse absender();
3:     Adresse empfaenger();
4:
5:     Brief(){
6:     ....
7:     }
8: ...
9: }



Danach funktioniert sowas wie

1: Brief rechnung();
2: rechnung.absender.ausgabe();
3: rechnung.empfaenger.ausgabe();



Es gibt da eine Regel:

<Klasse A> ist ein <Klasse B> -> Vererbung
<Klasse> A hat ein <Klasse B> -> Instanz


Also: Ein Brief ist ein Absender -> Eher nicht, er hat einen Absender. Mach also eine Instanz, wie ich es geschrieben habe.

Jetzt könntest du sagen: Ein Paket ist ein Brief (mit zusätzlichen Eigenschaften), und lässt die Klasse Paket von der Klasse Brief erben:

1: class Paket : Brief{
2:     Paket(){
3:     ....
4:     }
5: ...
6: }


Damit hat (!) das Paket automatisch auch Absender und Empfänger. Zusätzlich kann die Klasse Paket weitere Methoden bekommen, um die zusätzlichen Eigenschaften wie z.B. Versicherungswert etc. abzuhandeln.


Das Beispiel hinkt ein wenig, weil Briefe sicher auch Eigenschaften haben können, die Pakete nicht haben, aber für den Anfang reicht es ja.

(Nebenbei: ich kann mir nie merken, wo im Code einer Klasse Klammern etc. hin kommen, daher mag es den ein oder anderen Bug geben)


Bezug
                
Bezug
Methode mit Objekt in main: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:49 Do 23.05.2013
Autor: Mija

Hallo, also das mit dem "hat" und "ist" habe ich schonmal verstanden.
Aber wie erzeuge ich denn z.B. ein Objekt der Klasse Brief in der Klasse Brief selbst? Und wieso kann ich erst dann die Ausgabe in der main verwenden?
Ich habe das noch nie vorher so gesehen und finde auch in meiner Literatur bzw. den Vorlesungsunterlagen nichts dazu..

Bezug
                        
Bezug
Methode mit Objekt in main: Antwort
Status: (Antwort) fertig Status 
Datum: 08:46 Fr 24.05.2013
Autor: Event_Horizon

Hallo!

Ein Objekt Brief in der Klasse Brief? Wie meinst du das?

Du willst zwei Objekte vom typ Adresse in der Klasse Brief erzeugen (Zeilen 2&3 in meinem 1. Listing)


Meinst du Zeile 5? Das ist die Initialisierungs-Methode: Sobald du eine Instanz einer Klasse erzeugt hast (Brief rechnung();), wird automatisch die Methode Brief() (Zeile 5) innerhalb der Klasse Brief aufgerufen. Damit hat man die Möglichkeit, irgendwelche variablen zu setzen, oder was immer nötig ist, um die Klasse zu benutzen.

Oder was meinst du?

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Praxis"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]