Anlegen eines 2 dim Array mit Point Elementen

vas

Mitglied
Hallo!

Ich (Gelegenheitsprogrammierer) habe ein kleines Verständnisproblem:

Die Werte von Zahlenpaaren sollen in einer Matrix gespeichert werden. Für die Zahlenpaare habe ich eine lokale Klasse Point mit public Membern definiert (ähnlich einem C struct).

Die Matrix ist der 2-dim Array matData, in den also die Point Elemente eingefügt werden sollen
Das funktioniert auch soweit, wenn ich explizit Point-Objekte anlege und zuweise.

Die beiden auskommentierten Zuweisungen (s.u. Quellcode) führen auf eine NullPointerException, warum ist das so?


Code:
   private void test()
   { 
        
      class Point
      {
         int x;
         int y;
      }
     
      Point[][] matData = new Point[3][3]; 
      
      // matData[1][1].x = 13;      <-   NullPointerException
      // matData[1][1].y = 17;
      
      Point p = new Point();
      p.x = 13;
      p.y = 17;
      
      matData[1][1] = p;
      
      System.out.println(" * test " + matData[1][1].x);      // -> 13
      System.out.println(" * test " + matData[1][1].y);      // -> 17

      return;
   }

Vielleicht kann mir jemand auf die Sprünge helfen?

mfg vas
 

rme

Top Contributor
Hallo,

der new-Operator legt nur den Platz für die Elemente der Matrix an, aber füllt diese dann mit null (in C++ wäre das anders). Du musst also erstmal eine neue Point-Instanz anlegen, bevor du auf dessen Instanzvariablen zugreifst, d.h. [c]matData[1][1] = new Point()[/c]. Wenn du einen Konstruktor zu Point hinzufügst, der x und y gleich mit speichert, kannst du alles in einer Zeile machen: [c]matData[1][1] = new Point(13, 17); [/c]
 
Zuletzt bearbeitet:

Klösp

Aktives Mitglied
Du legst ein mehrdimensionales Array an.
Wie eine Tabelle mit 3 Spalte und 3 Zeilen.
In jedes Feld der Tabelle kannst du jetzt ein Point reinschreiben.

Das heißt aber auch, dass du das erstmal machen musst. Das Array ist nicht von alleine befüllt.
Deshalb muss du wie im nicht auskommentierten zunächst ein Punkt einfügen und dann kannst du auch drauf zugreifen.
In den leeren Felder ist sonst nur die null-Referenz und da du auf diese zugreifst bekommst du auch die entsprechende Exception.

€dit: zu spät
 
Zuletzt bearbeitet:

vas

Mitglied
Ah, das war mir nicht klar, das zunächst null-Referenzen in den Array eingetragen werden. Danke an Klösp + rme!

vas
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
3 Array eines Objektes anlegen Java Basics - Anfänger-Themen 4
M Rest mit Spring boot oder selbst anlegen Java Basics - Anfänger-Themen 14
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
I Logik Zahlungsprozess - Wann Bestellobjekt anlegen? Java Basics - Anfänger-Themen 2
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
J Methode als Class anlegen Java Basics - Anfänger-Themen 7
J Datenbankstruktur als Objekt anlegen Java Basics - Anfänger-Themen 4
E OOP Array anlegen mit unterschiedlichen Werten Java Basics - Anfänger-Themen 8
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
K Mehrere Objekte anlegen Java Basics - Anfänger-Themen 23
P Anlegen und Abfragen von Array List Java Basics - Anfänger-Themen 4
Q Methoden Konstruktoren anlegen Java Basics - Anfänger-Themen 5
S Direkt Instanzen anlegen Java Basics - Anfänger-Themen 1
H Programmiertechnik: Methode einer Klasse beim Anlegen überschreibt Java Basics - Anfänger-Themen 3
D Array auslesen und und Werte in ein anderes array anlegen Java Basics - Anfänger-Themen 5
L Classpath anlegen Java Basics - Anfänger-Themen 6
K Bibliothek per "Struktur" anlegen Java Basics - Anfänger-Themen 5
P Mindestangaben beim anlegen von Objekten Java Basics - Anfänger-Themen 4
F Klassenorganisation: Datentyp in Datentyp anlegen Java Basics - Anfänger-Themen 3
E Liste mit Wertepaaren anlegen Java Basics - Anfänger-Themen 4
P Variablen Variable in if Bedingung anlegen, Wert zuweisen und diesen als Bedingung nutzen Java Basics - Anfänger-Themen 4
B Klassen Objekte während der Laufzeit dynamisch anlegen Java Basics - Anfänger-Themen 8
A Konto anlegen Java Basics - Anfänger-Themen 3
A Map anlegen und verwalten Java Basics - Anfänger-Themen 46
H Wann ein Objekt der Programmklasse in main anlegen Java Basics - Anfänger-Themen 2
A Variablen für einen Thread anlegen Java Basics - Anfänger-Themen 5
B Dateien anlegen Java Basics - Anfänger-Themen 3
W neue Variablen in Schleife anlegen Java Basics - Anfänger-Themen 13
D Array anlegen ohne bekannte Länge? Java Basics - Anfänger-Themen 6
Houly JUnit Test Suite anlegen Java Basics - Anfänger-Themen 6
B jar Archiv anlegen Java Basics - Anfänger-Themen 2
D Objekte anlegen und Singleton Pattern Java Basics - Anfänger-Themen 21
B logfile anlegen Java Basics - Anfänger-Themen 5
B Datentyp anlegen Java Basics - Anfänger-Themen 6
G Unterverzeichnisse anlegen klappt nicht Java Basics - Anfänger-Themen 4
G Prüfen ob Ordner vorhanden, wenn nicht anlegen? Java Basics - Anfänger-Themen 2
G bin-Datei anlegen und schreiben Java Basics - Anfänger-Themen 5
G Datei mit Java anlegen Java Basics - Anfänger-Themen 9
X Ordner mit Tageszeit als Name anlegen Java Basics - Anfänger-Themen 5
J Datei anlegen Java Basics - Anfänger-Themen 2
J variable Variable anlegen Java Basics - Anfänger-Themen 7
loadbrain dateirechte unter linux, verzeichniss anlegen lassen Java Basics - Anfänger-Themen 10
M Mit Java eine neue DB anlegen über XAMPP? Ist das möglich ? Java Basics - Anfänger-Themen 4
O Variablen über Schleife anlegen Java Basics - Anfänger-Themen 7
H Integerliste anlegen. aber wie Java Basics - Anfänger-Themen 4
Q sun.net.ftp.FtpClient; Ordner anlegen Java Basics - Anfänger-Themen 4
R mehrere Objekte in Schleife anlegen? Java Basics - Anfänger-Themen 4
M Dateien/Verzeichnisse anlegen Java Basics - Anfänger-Themen 10
G JTextArea: Anlegen, Text löschen, überschreiben Java Basics - Anfänger-Themen 4
K Ordner anlegen! Java Basics - Anfänger-Themen 3
E Zweiten Container anlegen Java Basics - Anfänger-Themen 5
S Ein Dokument durchparsen und Dokumente Anlegen Java Basics - Anfänger-Themen 5
S Schöne Tabelle mit println() anlegen Java Basics - Anfänger-Themen 3
I User anlegen und Sytempfade zuordnen Java Basics - Anfänger-Themen 4
G Wie anlegen? Java Basics - Anfänger-Themen 5
H Datein und Ordner kopieren bzw neu anlegen Java Basics - Anfänger-Themen 2
G Path anlegen Java Basics - Anfänger-Themen 2
G Objekte mittels Schleife anlegen und ansprechen Java Basics - Anfänger-Themen 8
F Area anlegen Java Basics - Anfänger-Themen 9
S Datei anlegen Java Basics - Anfänger-Themen 6
S Objekte dynamisch anlegen Java Basics - Anfänger-Themen 3
F Neuen Pfad anlegen Java Basics - Anfänger-Themen 3
B Reihung anlegen, Werte einlesen Java Basics - Anfänger-Themen 9
M Arrays neu anlegen Java Basics - Anfänger-Themen 4
G Dateien anlegen, kopieren bzw. speichern Java Basics - Anfänger-Themen 5
G Ordner anlegen Java Basics - Anfänger-Themen 2
P x-viele Variablen anlegen Java Basics - Anfänger-Themen 2
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Parse-Tree eines statements darstellen Java Basics - Anfänger-Themen 0
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben