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.

Feld mit Klasse

Empfohlene Antworten

Veröffentlicht

Hi,

Porgrammiere noch nicht lange mit Java und finde den Fehler einfach nicht ...



class PCListe

{

	int X,Y;

	String HOST;


	PCListe()

	{

		X = Y = 0;

		HOST = null;

	}


	public int getX()

	{

		return X;

	}


	public int getY()

	{

		return Y;

	}


	public String getHost()

	{

		return HOST;

	}


	public void setX(int x)

	{

		X = x;

	}


	public void setY(int y)

	{

		Y = y;

	}


	public void setHost(String host)

	{

		HOST = host;

	}

}


public class AreYouAlive extends java.applet.Applet

{

int rectSize = 10;


	int MAX_PC = 10;


	PCListe pc[] = new PCListe[MAX_PC];


	public void paint(Graphics screen)

	{

		for(int i = 0;i < MAX_PC;i++)

		{

			if(pc[i].getX() > 0 && pc[i].getY() > 0) <---- hier ist der Fehler !!!!

			{

				screen.drawRect(pc[i].getX(),pc[i].getY(),rectSize,rectSize);

			}

		}

	}

}


Erst beim Ausführen erscheint folgender Fehler:

java.lang.NullPointerException

at AreYouAlive.paint(AreYouAlive.java:100)

at sun.awt.RepaintArea.paint(Unknown Source)

at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

das liegt doch an dem Feld aus dem Objekt der Klasse PCListe ???

gibt es in Java eigentlich auch ein struct wie in c ??? Muss ich eigene Datentypen immer mit ner neuen Klasse bauen ???

Übrigens das Feld füllt sich natürlich im Laufe des Programms.

Danke !!!!

Gruß Scratch

Original geschrieben von Scratch

PCListe pc[] = new PCListe[MAX_PC];

Du erzeugst hier zwar ein Array vom Typ PCListe, die einzelnen Positionen im Array sind aber immer noch ungefüllt!

pc = new PCListe();

in der Schleife für alle 10 Arraypositionen ausführen, dann klappt es.

Gruß Jaraz

Original geschrieben von Scratch

gibt es in Java eigentlich auch ein struct wie in c ???

Keine Ahnung, kann kein C. :D

http://groups.google.com/groups?dq=&hl=en&lr=&ie=UTF-8&oe=utf-8&threadm=9phnl8%24fr2%2406%241%40news.t-online.com&rnum=1&prev=/groups%3Fq%3Dg:thl1659882176d%26dq%3D%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3Dutf-8%26selm%3D9phnl8%2524fr2%252406%25241%2540news.t-online.com

Original geschrieben von Scratch

Muss ich eigene Datentypen immer mit ner neuen Klasse bauen ???

Ja, wie sonst?

Gruß Jaraz

  • Autor

Deshalb frag ich ja in C kann man einfach sagen

struct MeinTyp

{

int hallo;

int du;

string da;

};

MeinTyp denn_hab_ich_selbst_gemacht;

drauf zugreifen tut man dann mit:

denn_hab_ich_selbst_gemacht.hallo = 5;

etc ....

Und, wo ist da der Unterschied zu einem Object?

Anstatt struct nimmste einfach class.


public class Main {


  public Main(){

    MeinTyp mt = new MeinTyp();

    mt.hallo=5;

    System.out.println(mt.hallo);

  }


  public static void main(String[] args) {

    Main main = new Main();

  }


  class MeinTyp{

    int hallo;

    int du;

    String da;

  }

}

Servus,

Du hast zwar weniger zu schreiben, aber es ist leider nicht mehr objektorientiert.

Und so schlimm ist es auch mit gettern und settern nicht. Das machen die meisten IDEs.

Und Du kannst mit solchen Datenklassen eine Menge machen: dafür sorgen, dass diese Klassen als Modell für eine Oberfläche genommen werden können (Tree, Table), oder sie serialisieren oder sonst persistent abspeichern.

Also ich würde nicht mit struct arbeiten, selbst wenn es das geben würde.

Peter

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.