# objekt aufrufen



## OceanDriver (22. Sep 2007)

Hallo,

Ich habe ein Objekt "flug":


```
package flugbuch;

public class flug {
	
	
		private int flugid;
		private int startzeit;
		private int landezeit;
		private String flugzeug;
		private String pilot;
		
		
		public int getFlugid() {
			return flugid;
		}
		public void setFlugid(int flugid) {
			this.flugid = flugid;
		}
		public String getFlugzeug() {
			return flugzeug;
		}
		public void setFlugzeug(String flugzeug) {
			this.flugzeug = flugzeug;
		}
		public int getLandezeit() {
			return landezeit;
		}
		public void setLandezeit(int landezeit) {
			this.landezeit = landezeit;
		}
		public String getPilot() {
			return pilot;
		}
		public void setPilot(String pilot) {
			this.pilot = pilot;
		}
		public int getStartzeit() {
			return startzeit;
		}
		public void setStartzeit(int startzeit) {
			this.startzeit = startzeit;
		}
}
```




und eine Mainclass:



```
package flugbuch;
import java.util.*;
public class Flugbuch {


	public static void main(String[] args) throws Exception {

		Scanner s = new Scanner(System.in);
		
		
		System.out.println("Wieviele Flüge hinzufügen?");
		int anzahlfluege = s.nextInt();
		
		flug[] MeinFlug = new flug[anzahlfluege];
		
		for (int flugnr=0; flugnr<anzahlfluege;flugnr++)
		{
			MeinFlug[flugnr].setFlugid(flugnr);
			System.out.println("Bitte Startzeit angeben:");
			MeinFlug[flugnr].setStartzeit(s.nextInt());
			System.out.println("Bitte Landezeit angeben:");
			MeinFlug[flugnr].setLandezeit(s.nextInt());
			System.out.println("Flieger?");
			MeinFlug[flugnr].setFlugzeug(s.next());
			System.out.println("Pilot?");
			MeinFlug[flugnr].setPilot(s.next());
			
			//getFlight(flugnr, MeinFlug);
		}
		
		

		
		
	}

	
	public static void getFlight (int flugnr, flug[] MeinFlug) throws Exception
	{
		/**
		 		private int flugid;
		private int startzeit;
		private int landezeit;
		private String flugzeug;
		private String pilot;
		 **/
		
		
		System.out.println("Flugnummer: "+MeinFlug[flugnr].getFlugid());
		System.out.println("Startzeit: "+MeinFlug[flugnr].getStartzeit());
		System.out.println("Landezeit: "+MeinFlug[flugnr].getLandezeit());
		System.out.println("Flugzeug: "+MeinFlug[flugnr].getFlugzeug());
		System.out.println("Pilot: "+MeinFlug[flugnr].getPilot());
		
	}
	
}
```




			MeinFlug[flugnr].setFlugid(flugnr);

scheint ja schon falsch zu sein, was ist falsch an dem objektaufruf?
Kann ich kein array eines objektes erstellen?


----------



## moormaster (22. Sep 2007)

Du kannst ein Array aus Objekten erstellen... allerdings kann man keine Methoden von nicht existierenden Objekten aufrufen.


```
flug[] MeinFlug = new flug[anzahlfluege]; 

  MeinFlug[flugnr].setFlugid(flugnr);
```

Obiges kann nicht funktionieren, solange die einzelnen Objekte nicht durch den Aufruf des Konstruktors angelegt wurden... Jedes Objekt muss explizit per Konstruktor angelegt werden, bevor du es in ein Array tun und darauf zugreifen kannst.


----------



## Jango (22. Sep 2007)

Und nur zum Verständnis - "flug" ist kein Objekt, sondern eine Klasse. Ist dir der Unterschied nicht klar -> Basics lernen.


----------



## FlorianP (22. Sep 2007)

Soll heissen:


```
...
for (int flugnr=0; flugnr<anzahlfluege;flugnr++)
      {
         // damit setzt du ein Objekt der Klasse flug in das Array MeinFlug an Position flugnr
         MeinFlug[flugnr] = new flug();
         MeinFlug[flugnr].setFlugid(flugnr); 
...
```

Übrigens ist es in Java üblich, Klassen immer mit einem Großbuchstaben zu beginngen: Flug
Variablen sollten immer klein geschrieben sein: meinFlug

Meine Empfehlung: www.javabuch.de

Gruß, Florian


----------



## Ocean-Driver (22. Sep 2007)

Wie kann ich "flug" denn als Objekt deklarieren?


----------



## Jango (22. Sep 2007)

Ocean-Driver hat gesagt.:
			
		

> Wie kann ich "flug" denn als Objekt deklarieren?


Das kannst du nicht. Deine Klasse heißt ja schon so. Entweder du änderst den Namen deiner Klasse, oder nennst dein Objekt anders.


----------



## Ocean-Driver (23. Sep 2007)

> Und nur zum Verständnis - "flug" ist kein Objekt, sondern eine Klasse. Ist dir der Unterschied nicht klar -> Basics lernen.




Ist daher diese Aussage falsch?
Ich mein, ich hab das Aray jetzt rausgenommen und es funktioniert


----------

