# Java Übungen Anfänger



## 100hp4ever (20. Okt 2015)

Hallo,
ich bearbeite momentan ein Arbeitsblatt zu Java und habe ein paar Probleme.
Aufgabe 1 habe ich bearbeitet und bin der Meinung, dass alles in Ordnung ist.
Ich benutze momentan noch BlueJ, somit ist keine Main Methode nötig.

AUFGABE 1

Erstellen Sie eine Klasse, die einen Facebook-Post repräsentiert. Der Name der Klasse soll FacebookPost sein. Erstellen Sie Datenfelder fur folgende Eigenschaften:

Inhalt Anzahl Likes Öffentlich Erstelldatum

Der Inhalt des Posts, d.h. der Text
Anzahl der Likes fur den Post
Gibt an, ob der Post offentlich einsehbar ist Gibt an, wann der Post erstellt wurde

Geben Sie den Datenfeldern sinnvolle Namen (Naming Conventions beachten!) und Typeigenschaften. Erstellen Sie außerdem einen Konstruktor, an den der Inhalt und der Wert für das Feld öffentlich als Parameter übergeben werden können. Im Rumpf des Konstruktors sollen die Werte dieser Parameter den entsprechenden Datenfeldern zugewiesen werden. Zusätzlich soll im Konstruktor der Wert für die Anzahl Likes auf 0 initialisiert und der Wert für das Erstelldatum auf das aktuelle Datum gesetzt werden. Erstellen Sie eine Methode, die einen Klick auf den Like-Button simuliert und die Anzahl der Likes um 1 inkrementiert. Wahlen Sie auch hier einen sinnvollen Namen fur die Methode. Erstellen Sie eine Methode mit dem Namen istTopPost, die true zurückliefert, wenn die Anzahl der Likes 50 oder hoher ist, und false, falls die Anzahl der Likes unter 50 ist. Versehen Sie diese Methoden und den Konstruktor mit JavaDoc.


```
public class facebookPost
{
  //Variablen
  private String inhalt;
  private int anzahlLikes;
  private String erstelldatum;
  private boolean istOeffentlich;

  public facebookPost(String postinhalt,String datum, boolean oeffentlich)
  {
  //Postinhalt+Datum+öffentlich/privat
  inhalt=postinhalt;
  erstelldatum=datum;
  istOeffentlich=oeffentlich;
  //Setze die Anzahl der Likes auf 0
  anzahlLikes=0;
  }

  public void mehrLikes ()
  {
  //Erhöhe Likes um 1
  anzahlLikes = anzahlLikes++;
  }

  public int likesAnzeigen()
  {
  //Zeige Anzahl Likes
  return anzahlLikes;
  }

  public boolean istTopPost()
  {
  //teste ob Post = topPost
  if (anzahlLikes>=50) {
  return true;
  }
  else {
  return false;
  }
  }
}
```

Bei Aufgabe 2 verstehe ich den 2. Teil nicht.

Erstellen Sie eine weitere Klasse mit dem Namen FacebookNutzer. Die Klasse FacebookNutzer soll Datenfelder fur den Vornamen, den Nachnamen und den Facebook-Post aus Aufgabe 1 haben. Erstellen Sie einen Konstruktor in der Klasse FacebookNutzer, bei der Vor- und Nachname als Parameter ubergeben und den entsprechenden Datenfeldern zugewiesen werden. Erstellen Sie eine Methode mit dem Namen facebookPostErstellen, in der eine neue Instanz der Klasse FacebookPost erzeugt und dem entsprechenden Datenfeld zugewiesen wird. Nutzen Sie dafür den Konstruktor aus Aufgabe 1. Welches Problem haben wir, wenn wir mehrere Facebook-Posts erstellen wollen? Wie kann dieses Problem gelost werden?

```
public class facebookNutzer
{
  //Variablen
  private String name1;
  private String name2;
  private facebookPost FacebookPostNeu;

public facebookNutzer(String Vorname, String Nachname)
{
  name1 = Vorname;
  name2 = Nachname;
}

public void facebookPostErstellen (String inhalt, String erstelldatum, boolean istOeffentlich)
{
  FacebookPostNeu = new facebookPost (inhalt, erstelldatum, istOeffentlich);
}
}
```


----------



## Joose (20. Okt 2015)

Klassennamen werden in "UpperCamelCase" geschrieben und Parameter von Methoden/Konstruktoren in "lowerCamelCase" (wie bei der Name von Methoden auch).
Ansonsten verwende für die Klasse "FacebookNutzer" sprechender Attributsnamen statt "name1" bzw. "name2". Irgendwann wirst du nicht mehr genau wissen welches davon der Vor- und welches der Nachname ist.
Nenne die Attribute doch einfach "vorname" bzw. "nachname".

Damit du im Konstruktor dann nicht die Parameter umbenennen musst arbeite mit "this".


----------



## truesoul (20. Okt 2015)

Hallo,

die Naming Conventions sagt das Klassen groß zu schreiben sind.
Variablen klein beginnend...
Das du dein Code in Deutsch geschrieben hast, darüber kann man erstmal hinweg sehen.

Naja, wieviel Facebookpost kann der Facebooknutzer gleichzeitig haben ohne das ein erstellter Post verloren geht?

Grüße

P.S Über den Reiter Einfügen... kannst du Codetags verwenden. Ist besser für die Lesbarkeit von Code


----------



## 100hp4ever (20. Okt 2015)

Okay danke für eure Antworten, ich würde jetzt gerne noch eine Methode schreiben facebookPost anzeigen für Aufgabe 1&2 jedoch klappt es einfach nicht ...


----------



## 100hp4ever (20. Okt 2015)

Hat sich erledigt


----------

