www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de