matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

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
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. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
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.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]