Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo

Ich habe folgende Klassen mithilfe einer n:m Beziehung verbunden:

Klasse ARTIKEL:


public class ARTIKEL

{

    private String thema;

    private String ueberschrift;

    private int laenge;



    public ARTIKEL(){        

       laenge= 2;

    }


    public void verfassen (String t,String u) {

        ueberschrift = u;

        thema= t;

    }


    public int gibLaenge(){

        return laenge;        

    }


    public void themaAendern( String th ){

        thema= th;   

    }



}

und Klasse ZEITUNG:



public class ZEITUNG

{

    private String name;

    private String typ;

    private String adresse;


    public ZEITUNG() {

        name = "Süddeutsche Heizung";

        typ = "Newspaper";

        adresse = "Straße";

    }


    public void artikelErstellen(ZEITUNG ar){ 



    }


    public void umsortieren(){


    }


}



Nun lautet die Fragestellung: Schreibe die Mehtode "Artikel erstellen()" der Klasse Zeitung, die folgendes bewirkt: der eingegebene Artikel wird benutzt und ein neues Artikel-Zeitungs-Paar eingetragen. Dann wird der Verlagsname abgefragt sowie die Länge des Artikels.

Ich weiß zwar, dass ich irgendwie die Punktnotation verwenden muss, habe aber keine Ahnung wie das funktionieren soll.

Kann mir jemand helfen?

Ich habe folgende Klassen mithilfe einer n:m Beziehung verbunden

Nein, das hast Du nicht...

Außerdem entspricht dies nicht der Aufgabenstellung, die Aufgabenstellung lässt keine n:m Beziehung vermuten.

Nun lautet die Fragestellung: Schreibe die Mehtode "Artikel erstellen()" der Klasse Zeitung, die folgendes bewirkt: der eingegebene Artikel wird benutzt und ein neues Artikel-Zeitungs-Paar eingetragen.

Du hast die Methode hier falsch angegeben, denn sie entspricht nicht der Aufgabenstellung.

Ich weiß zwar, dass ich irgendwie die Punktnotation verwenden muss, habe aber keine Ahnung wie das funktionieren soll.

Nein, diese brauchst Du hier nicht.

Nein, das hast Du nicht...

Außerdem entspricht dies nicht der Aufgabenstellung, die Aufgabenstellung lässt keine n:m Beziehung vermuten.

Doch habe ich. Natürlich habe hier nicht das ganze Projekt gepostet, da sie für diese Aufgabe nicht erforderlich sind

Du hast die Methode hier falsch angegeben, denn sie entspricht nicht der Aufgabenstellung.

Tut mir leid. es sollte die Methode artikelErstellen() sein. Der Parameter im Quellcode soll bitte ignoriert werden!

Nein, diese brauchst Du hier nicht.

Sondern?

Doch habe ich. Natürlich habe hier nicht das ganze Projekt gepostet, da sie für diese Aufgabe nicht erforderlich sind

Die Beziehung ist erforderlich, denn Du sollst "ein neues Artikel-Zeitungs-Paar eingetragen".

Es wäre also besser, Du gibst dafür auch den Code an.

Noch schöner wärs, sich an die Java Code Conventions zu halten. Aber ich weiß nicht, ob das an Dir oder an Deinem Lehrer liegt.

Ok

Hier ist die Hilfsklasse für die m:n Klasse:



public class ARTIKELZEITUNG

{


    private ARTIKEL artikel;

    private ZEITUNG zeitung;


    public ARTIKELZEITUNG(ARTIKEL art, ZEITUNG zeit)

    {

        artikel = art;

        zeitung = zeit;

    }



}

und hier die Assoziationsklasse:

public class ABGEDRUCKT

{

    private ARTIKELZEITUNG[] artzei;

    public ABGEDRUCKT()

    {

        artzei= new ARTIKELZEITUNG [1000];


    }



}



In welcher Klasse muss ich die Methode programmieren?

War das so vorgegeben oder hast Du Dir das ausgedacht? So wie es jetzt ist, finde ich es äußerst ungünstig, die artikelErstellen()-Methode in der Zeitungsklasse zu haben.

Bzw eine externe Klasse, die die Beziehung zwar herstellen soll, aber nicht verwaltet.

Eher würde ich so etwas machen, um die Beziehung darzustellen, auch wenn ich den Aufbau insgesamt nicht für ideal halte (anstelle von List gehen auch Arrays, wenn Dir das lieber ist, aber die sind schlechter zu handhaben):

public class ZEITUNG {

    private String name;

    private String typ;

    private String adresse;

    private List<ARTIKEL> artikelliste;

    //...

}


public class ARTIKEL

{

    private String thema;

    private String ueberschrift;

    private int laenge;

    private List<ZEITUNG> zeitungsliste;

    //...

}

Dann lässt sich auch die artikelErstellen()-Methode in der Zeitungsklasse besser handhaben.

In welcher Klasse muss ich die Methode programmieren?

Das sagt doch die Aufgabenstellung schon.

Bearbeitet von Ezra

Hmm, das hilft mir leider nicht weiter. Könntest du mir noch eine andere Möglichkeit zeigen, wie ich die Aufgabe erfüllen kann?

  • 2 Wochen später...
public class ARTIKEL

{

private String thema;

private String ueberschrift;

private int laenge;

private List<ZEITUNG> zeitungsliste;

//...

}

Eine Frage die sich mir auf anhieb stellt ist folgende : Kennt der Artikel die Zeitung ? Ich glaube nicht :)

Lg

Nicer

Es soll eine n:m-Beziehung sein, d.h. irgendwo muss abgebildet werden, wenn ein Artikel in mehreren Zeitungen vorkommt. Ich würd das Ganze in ABGEDRUCKT verwalten, passt aber nicht zur Aufgabenstellung. Darum mein Nebensatz

auch wenn ich den Aufbau insgesamt nicht für ideal halte

Mir ist immer noch nicht klar, was hier tatsächlich vorgegeben und was vom TO dazugekommen ist. Leider will er/sie mir das nicht beantworten.

Bearbeitet von Ezra

Leider will er/sie mir das nicht beantworten.

Dann wird es (leider) auch sehr schwer dem TO weiterzuhelfen :)

Lg

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.