# Paket in einen Konstruktor implementieren



## Volthex (10. Jan 2017)

Hallo,
ich habe ein Problem bei einer Aufgabe. Die Aufgabenstellung lautet wie folgt:
"Erzeugt eine neue Klasse, die als zentrale Klasse die Aspekte eures Spiels realisiert. Implementiert einen Konstruktor und erzeugt darin unter Verwendung des parameterlosen Konstruktors ein Objekt der Klasse PIMarbleGame aus dem Paket pimarble. Dann öffnet sich ein leeres Spielfeld. Dieses Spielfeld ist 780 Pixel (Bildpunkte) breit und 600 Pixel hoch."
Wir müssen ein Murmelspiel programmieren, nur weiß ich gerade nicht, wie ich das Paket pimarble in eine andere Klasse einbinden soll, damit das funktioniert.


----------



## Joose (10. Jan 2017)

Mittels "Import" Anweisung 

Beispiel:

```
package irgendwas;

import java.swing.*;
......
```


----------



## Volthex (10. Jan 2017)

Bei dem Package schreibe ich dann einfach "pimarble" hin und bei import muss dann was stehen?


----------



## Joose (10. Jan 2017)

Nein deine Klasse befindet sich zum Beispiel in einem Package "xyz". Du sollst Objekte der Klasse PIMarbleGame erstellen welche sich im Package "pimarble" befindet.
Dieses package musst du importieren.


----------



## Viktim (11. Jan 2017)

Joose hat gesagt.:


> Nein deine Klasse befindet sich zum Beispiel in einem Package "xyz". Du sollst Objekte der Klasse PIMarbleGame erstellen welche sich im Package "pimarble" befindet.
> Dieses package musst du importieren.


also mit:
	
	
	
	





```
import pimarble.PIMarbleGame;
```


----------



## Volthex (11. Jan 2017)

Ich habe es jetzt so gemacht:

```
import pimarble.PIMarbleGame;
/**
 * Write a description of class PIMarbleGame here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class PIMarbleGame
{

    /**
     * Constructor for objects of class PIMarbleGame
     */
    public PIMarbleGame()
    {

    }
}
```
Aber jetzt bekomme ich eine Fehlermeldung: "PIMarbleGame is already defined in this compilation unit."
Muss ich das "Import" woanders hinschreiben?


----------



## InfectedBytes (11. Jan 2017)

Du musst deine Klasse einfach anders nennen.
Es gibt eben schon eine PIMarbleGame Klasse (die importierst du ja gerade), daher solltest du deine eigene Klasse umbenennen.


----------



## Volthex (11. Jan 2017)

Laut Aufgabe sollte sich jetzt aber ein Spielfeld öffnen. Doch es tut sich nix... Ich hab meine eigene Klasse jetzt auch anders benannt.


----------



## Joose (11. Jan 2017)

Volthex hat gesagt.:


> Laut Aufgabe sollte sich jetzt aber ein Spielfeld öffnen. Doch es tut sich nix


Wie schaut denn dein Code nun aktuell aus?
"Es tut sich nix" ist keine Fehlerbeschreibung. Gut es sollte sich ein Spielfeld öffnen, öffnet sich anscheinend nicht. Kommt irgendeine Fehlermeldung?
Hast du im Konstruktor deiner Klasse ein Objekt von "PIMarbleGame" erstellt?


----------



## Volthex (11. Jan 2017)

```
import pimarble.PIMarbleGame;
/**
 * Write a description of class MarbleGame here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class MarbleGame
{
    public MarbleGame()
    {

    }
}
```
Das ist mein Code. Ich habe versucht im Konstruktor PIMarbleGame = new PIMarbleGame(); und pimarble = new PIMarbleGame(); und MarbleGame = new PIMarbleGame(); einzugeben, aber das funktioniert nicht. Es heißt dann immer, dass das linke Objekt vom Gleichheitszeichen nicht gefunden wird.


----------



## Joose (11. Jan 2017)

Volthex hat gesagt.:


> Das ist mein Code. Ich habe versucht im Konstruktor PIMarbleGame = new PIMarbleGame(); und pimarble = new PIMarbleGame(); und MarbleGame = new PIMarbleGame(); einzugeben, aber das funktioniert nicht. Es heißt dann immer, dass das linke Objekt vom Gleichheitszeichen nicht gefunden wird.


Ja weil die Deklaration falsch ist! So schaut sie allgemein aus --> `[Type] [variablenname] = new [Konstruktor];`
Deine 3 Varianten sind irgendwas, schau dir die Grundlagen zur objektorientierten Programmierung (kurz OOP) an.


----------



## Volthex (11. Jan 2017)

Ach ja stimmt... Mein Gott bin ich blöd :S Habs jetzt hinbekommen. Danke nochmal für die Hilfe 

```
import pimarble.PIMarbleGame;
/**
 * Write a description of class MarbleGame here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class MarbleGame
{
    public MarbleGame()
    {
     PIMarbleGame MarbleGame = new PIMarbleGame();
    }
}
```


----------

