Java: List im Konstruktor zu LinkedList?

3 Antworten

Um ein Objekt zu erstellen musst du das "new" Schlüsselwort verwenden, also sieht das so aus:

this.rechtecke = new LinkedList<>();

Den generischen Typ habe ich entfernt, der ist hier fehl am Platz. Stattdessen schreibt man das so in der Variablendefinition:

List<Rechteck> rechtecke;

Dazu habe ich noch die Instanzierung von "List" entfernt, das ist ein Interface und folglich nicht instanzierbar.

10

Wie schon beim vorgänger gesagt will der leider wieder den Parameter von List<Rechteck> rechtecke; entfernen.

0
10
@Jeldrik16

"this type List is not generic; it cannot be parameterized with arguments <Rechteck>"

0
10

Ok hat sich geklärt, der import von java.util.List war irgendwie java.awt.List, aber Danke auf jeden fall :)

0

Das liegt wohl daran, dass du das Attribut rechtecke mit dem Typ List deklariert hast und dann versuchst ihm einen Wert vom Typ LinkedList<Rechteck> welcher eine Subklasse von List<Rechteck> ist zuzuweisen.

Ausserdem hast du das new vergessen.

So läufts:

public class BunteRechteckeController{
   List<Rechteck> rechtecke;
   public BunteRechteckeController(){
      this.rechtecke = new LinkedList<>();
   }
   
   public static void main(String[] args){
       
   }
}
10

Geht leider nicht, wenn ich List<Rechteck> rechtecke; schreibe will der wieder den Parameter <Rechteck> entfernen.

0
31
@Jeldrik16

Also sieht dein kompletter Code ungefähr so aus?:

import java.util.List;
import java.util.LinkedList;
import IRGENDWAS.Rechteck;

public class BunteRechteckeController{
   List<Rechteck> rechtecke;
   public BunteRechteckeController(){
      this.rechtecke = new LinkedList<>();
   }
   
   public static void main(String[] args){
       
   }
}

Ich hab mir dazu mal ne Platzhalterklasse Rechteck gebastelt:

class Rechteck{
    public Rechteck(){}
}

Läuft ohne Probleme.

0
10
@Isendrak

ja jetzt funktioniert es :) mein fehler war der import von java.util.List.... war java.awt.List warum auch immer :o Danke für die Hilfe

1

Variante A:

public class BunteRechteckeController {

 private List<Rechteck> rechtecke;

 public BunteRechteckeController(){
   rechtecke = new LinkedList<>();
 }

}

Variante B:

public class BunteRechteckeController {

 private List<Rechteck> rechtecke = new LinkedList<>();

}

Ich rate zu grundsätzlich zu Variante B, da man dadurch den unnötigen Code im Konstruktor vermeidet. Den Konstruktor würde ich nur nutzen, wenn tatsächlich mit Parametern gearbeitet wird.

Woher ich das weiß:
Berufserfahrung

BlueJ - illegal start of expression. Wo liegt der Fehler?

Hallöchen, wir habe in der Schule vor kurzem mit dem Programmieren angefangen und dazu benutzen wir "BlueJ" und die Klassenbibliothek "Stifte und Mäuse".

Nun habe ich allerdings ein Problem und weiß nicht mehr weiter: In der Klasse Polygon bekomme ich in der Zeile mit "public void zeichne()" eine Fehlermeldung und zwar "illegal start of expression".

import sum.kern.*;

public class Polygon
{
    // Referenzen
    Stift meinStift;
    Polygon meinPolygon;
    Polygon meinPolygon1,meinPolygon2;

    // Konstruktor
    public Polygon(int pN,int pLaenge,int pHPosition,int pVPosition,int pWinkel)
    {
        // Objekte
        meinStift = new Stift();
        this.zeichne(pN, pLaenge, pHPosition, pVPosition, pWinkel);

        // Methoden
        public void zeichne() 

        meinStift.bewegeBis(pHPosition,pVPosition);
        meinStift.dreheUm(pWinkel);
        meinStift.runter();
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);

        meinStift.bewegeBis(pHPosition,pVPosition);
        meinStift.dreheUm(pWinkel);
        meinStift.runter();
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
    }
}

Und die oben genannte Klasse Polygon soll auf die Klasse Steuerung "basieren". Liegt vielleicht hier der Fehler?

import sum.kern.*;

public class Steuerung
{
    // Referenzen
    Bildschirm meinBildschirm;

    // Konstruktor
    public Steuerung()
    {
        // Instanzvariable initialisieren
        meinBildschirm = new Bildschirm(800, 800);

        //methoden

        meinStift.bewegeBis(pHPosition,pVPosition);
        meinStift.dreheUm(pWinkel);
        meinStift.runter();
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);

        meinStift.bewegeBis(pHPosition,pVPosition);
        meinStift.dreheUm(pWinkel);
        meinStift.runter();
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
        meinStift.dreheUm(-120);
        meinStift.bewegeUm(pLaenge);
    }
}

Ich würde mich sehr freuen, wenn mir jemand helfen würde.

...zur Frage

Java Methode auslagern

Wie kann ich eine Anweisung innerhalb einer Java-Klasse in eine Methode auslagern und wieder darauf zugreifen?

Ursprung:

public class Klasse{

public static void main(String[]args){ Anweisungen1; Anweisungen2; }

#

Ziel:

public class Klasse{

methode(){ Anweisungen1; }

public static void main(String[]args){ ZUGRIFF AUF methode(); Anweisungen2; }

...zur Frage

Methode einer anderen Klasse ausführen

Hey leute,

Ich arbeite an einem java projekt und hänge im endspurt fest -.- Ich habe in meinem Programm 3 Klassen,

1. public class foyer {

public static void main (String[] args) {

} }

das ist quasi eine begrüßung, die einen dann zwischen den zwei weiteren klassen auswählen lassen soll.

2.

public class BMI {

   public void BMI ( String args[] ) {

} }

diese Klasse ist die eine, die man über die Klasse foyer aufrufen können soll

3.

public class TR {

public void TR ( ) {

} }

die ist die andere Klasse und ihre methode, die über foyer aufgerufen werden soll

der code in der Klasse foyer sieht so aus:

import java.util.Scanner; public class foyer {

public static void main (String[] args) {
    int auswahl = 0;
    BMI bmirechner = new BMI();
    TR taschenrechner  = new TR();
    Scanner scan = new Scanner(System.in);

    System.out.println("Herzlich Wilkommen in meinem ersten Java Programm.");
    System.out.println("");
    System.out.println("Wenn Sie den BMI-Rechner verwenden wollen, geben sie eine 1 ein.");
    System.out.println("Wenn Sie den Taschenrechner verwenden wollen, geben sie eine 2 ein.");

    String input = scan.nextLine();
    auswahl = Integer.valueOf( input ).intValue();

    if("1".equals( auswahl ) ) {

        ????
    }

    if("2".equals( auswahl ) ) {

        ????   

    }

}

}

an den Stellen mit den Fragezeichen sollen die Befehle zum Wechseln auf die jeweilige Klasse stehen.

Kann mir da vlt. jemand helfen?

Danke, Gruß PooBucket

...zur Frage

Wie viele Rechtecke gleicher Größe passen in einen Kreis? Formel/Excel?

Hallo zusammen,

ich suche nach einer Lösung für das folgende Problem:

Ich habe eine konstante Kreisfläche ( Ø 150 ).

In diesen Kreis möchte ich Rechtecke packen. Immer nur eine bestimmte Größe, keine verschiedenen Größen.

Sie müssen keinen Abstand zueinander haben wie im Bild und die Maße im Bild sind auch irrelevant.

Da ich viele verschiedene Größen von Rechtecken habe, suche ich jetzt nach einer Formel oder einem Algorithmus mit dem ich schnell berechnen kann, wie viel Rechtecke einer bestimmten Größe in den Kreis passen..

Das ganze würde ich gerne in Excel darstellen. Am besten so, dass man einfach nur die Höhe und Breite vom Rechteck eintippen muss und dann die mögliche Stückzahl automatisch ausgeben wird.

Hat jemand eine Idee?

...zur Frage

Wie programmiere ich folgende Aufgabe in Java? Siehe unten?

Aufgabe 1
Klasse Punkt:

a)  Definieren Sie eine Klasse Punkt mit zwei Instanzfeldern vom Typ double, welche die Koordinaten x und y eines 2D Punktes beschreiben.
      Sie sollen von außerhalb der Klasse nur über die von Ihnen definierten Zugriffsmethoden (getX, getY, setX, setY) zugängig sein und werden im Konstruktor der Klasse übergeben.

b)  Definieren Sie zum Testen der Klasse Punkt eine Klasse PunktTest, die in ihrer main-Methode eine Instanz der Klasse Punkt erzeugt und an dieser die Methoden der Klasse aufruft.

Mit freundlichen Grüßen

...zur Frage

Java Hauptklasse Fehlermeldung?

Ich habe einen Java Code geschrieben und alle hat funktioniert.Plötzlich kam diese Fehlermeldung: Hauptmethode in Klasse org.psnbtech.Daten nicht gefunden. Definieren Sie die Hauptmethode als: public static void main(String[] args):
Oder eine JavaFX-Anwendung muss javafx.application.Application erweitern.

Weiss nicht was ich da genau machen muss..

...zur Frage

Was möchtest Du wissen?