Hilfe bei Methoden!

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo.

Zuerst mal gleich vor weg, bin noch ganz am Anfang meiner Java-Laufbahn aber ich bin dabei mich durchzubeissen *g*

Also, ich hab eine Klasse "Person" und eine Klasse "WaitingRoom". Die Aufgabe besteht darin ein Wartezimmer zu programmieren (sprich wer zuerst kommt, malt zuerst).

Meine beiden Klassen schauen wie folgt aus:

Klasse Person

public class Person {
private String firstname;
private String lastname;
private String socialSecurityNumber;

public Person(String socialSecurityNumber)
{
this.socialSecurityNumber = socialSecurityNumber;
}

public Person(String firstname, String lastname, String socialSecurityNumber)
{
this.firstname = firstname;
this.lastname = lastname;
this.socialSecurityNumber = socialSecurityNumber;
}

public void getFirstname() {
System.out.println(firstname);
}

public void getLastname() {
System.out.println(lastname);
}

public void getSocialSecurityNumber() {
System.out.println(socialSecurityNumber);
}

public void setFirstName(String firstname) {
this.firstname = firstname;
}

public void setLastName (String lastname) {
this.lastname = lastname;
}
}


Klasse Waitingroom

import sun.misc.Queue;

public class WaitingRoom {

Queue warteschlange;

private static final int capacity = 9;

public WaitingRoom() {
warteschlange.enqueue("Frau Meier");
warteschlange.enqueue("Herr Müller");
warteschlange.enqueue("Herr Weber");
warteschlange.enqueue("Herr Hubert");
warteschlange.enqueue("Frau Stroher");
warteschlange.enqueue("Herr Fallmann");
warteschlange.enqueue("Herr Fleischer");
}

public int WaitingRoom(int capacity) {
return capacity;
}

public boolean isFull() {
if (capacity == 9) {
return true;
} else {
return false;
}

}

public boolean isEmpty() {
if (capacity == 0) {
return true;
} else {
return false;
}
}

public int getCapacity() {
return capacity-getNumberOfPersonsInRoom;
}

public Person nextPersonPlease() {
if(!warteschlange.isEmpty()){
System.out.println("The next is"+warteschlange.front());
} else {
System.out.println("Hm, nobody here...");
}
}


public void enter(Person person) {
Raum warteraum = new Raum();
if(warteraum.isFull()) {
System.out.println("The waitingroom is temporarely overcrowded!");
} else {
System.out.println("Welcome");
}
}
}


Hm die Klasse Person müsste so weit passen. Bei der Klasse WaitingRoom hab ich noch so meine Probleme. Und zwar benötige ich eine Methode, die es möglich macht, dass Personen den Raum betreten. Um zu gewährleisten, dass das Wartezimmer nicht schon überfüllt ist, sollt vorher mit isEmpty() bzw. isFull() der Status überprüft werden.

Weiteres weiß ich nicht, wie ich die Klasse Person in der Klasse WaitingRoom aufrufen soll. Oder wo ich die Namen der Personen eingeben soll?

Bitte um Hilfe und vielen vielen Dank im Voraus.

Liebe Grüße
 
du hast die falsche Queue erwischt:
import sun.misc.Queue;

besser (ok eigentlich nur)
java.util.Queue benutzen
im speziellen: LinkedList

als kleines Beispiel:

Code:
import java.util.LinkedList;
import java.util.Queue;

public class WaitingRoom {

	private Queue<Person> queue;

	private final int capacity;

	public WaitingRoom(int capacity) {
		this.queue = new LinkedList<Person>();
		this.capacity = capacity;
	}

	public int waitingPersons() {
		return queue.size();
	}

	public void enter(Person person) {
		if (queue.size() == capacity) {
			System.out.println("full");
		} else {
			queue.add(person);
		}
	}

	public static void main(String[] args) {
		WaitingRoom wr = new WaitingRoom(2);

		Person person = new Person();

		wr.enter(person);
		System.out.println(wr.waitingPersons()); // 1
		wr.enter(person);
		System.out.println(wr.waitingPersons()); // 2
		wr.enter(person); // full
	}

	static class Person {
	}
}
 
achso danke 🙂 wann verwende ich denn welche? hab gar nicht gewusst dass es da mehrere gibt...

und wo trag ich dann die namen der personen ein?
 
> wann verwende ich denn welche?

alles was mit sun.xx beginnt gar nie!
sei es Queue oder sonst was...
(ich weiss nicht was die sun.misc.Queue ist)

das ganze Collection Framework ist in
java.util

> und wo trag ich dann die namen der personen ein?

in die Person. aber nicht in meine. die ist nur da, dass
das Beipiel bei mir kompiliert. also in deine (also die
von Landei meine ich ;-)
 
ok alles klar 🙂 sun.xx gleich wieder vergessen 🙂

wie bitte? von landei? *nixversteh* wo definiere ich denn die anzahl der plätze im raum? ich hatte ja vorher

private static final int capacity = 9;

stehen.

also meine klasse schaut momentan so aus:

import java.util.Queue;
import java.util.LinkedList;

public class WaitingRoom {

public Queue<Person> queue;

private final int capacity;

public WaitingRoom(int capacity) {
this.queue = new LinkedList<Person>();
this.capacity = capacity;
}

public int WaitingRoom(int capacity) {
return capacity;
}

public boolean isFull() {
if (capacity == 9) {
return true;
} else {
return false;
}

}

public boolean isEmpty() {
if (capacity == 0) {
return true;
} else {
return false;
}
}

public int getCapacity() {
return capacity - getNumberOfPersonsInRoom;
}

public void enter(Person person) {
if (queue.size() == capacity) {
System.out.println("The waitingroom is temporarely overcrowded!");
} else {
queue.add(person);
}
}
}
 
mach mal code tags dahin...ist ja die hölle zum lesen:
[*code] meinCode [*/code]

aber ohne die Sternchen
dann sind auch die Indents da usw
 
>public boolean isEmpty()

= hat es Personen in der Queue ?
oder ist die LinkedList leer?
hier schauen:
http://java.sun.com/javase/6/docs/api/java/util/LinkedList.html
va in den Vererbten Methoden (AbstractCollection)

>public int WaitingRoom(int capacity) {
>return capacity;
>}

was ist dass den?

Code:
public int getCapacity(){ return this.capacity; }


>public int getCapacity() {
>return capacity - getNumberOfPersonsInRoom;
>}

Die Kapazität ist capacity.
getAvailableSpace / getFreeSpace oder so meinst du
= Kapazität - Grösse der Queue
hier:
http://java.sun.com/javase/6/docs/api/java/util/LinkedList.html#size()

>public boolean isFull() {
Full ist sie wenn die Grösse der Queue = capacity ist

>wie bitte? von landei? *nixversteh*
http://java-forum.org/de/viewtopic.php?p=458077&highlight=#458077
war Manowar..ups

>private static final int capacity = 9;
static heisst alle Warteräume sind gleich

siehe bei mir..mit Konstruktor die grösse übergeben
 
Code:
import java.util.Queue;
import java.util.LinkedList;

public class WaitingRoom {

	public Queue<Person> queue;

	private final int capacity;

	public WaitingRoom(int capacity) {
		this.queue = new LinkedList<Person>();
		this.capacity = capacity;
	}

	public int WaitingRoom(int capacity) {
		return capacity;
	}

	public boolean isFull() {
		if (capacity == 9) {
			return true;
		} else {
			return false;
		}

	}

	public boolean isEmpty() {
		if (capacity == 0) {
			return true;
		} else {
			return false;
		}
	}

	public int getCapacity() {
		return capacity - getNumberOfPersonsInRoom;
	}

	public void enter(Person person) {
		if (queue.size() == capacity) {
			System.out.println("The waitingroom is temporarely overcrowded!");
		} else {
			queue.add(person);
		}
	}
}
 
Code:
public static void main(String[] args) { 
      WaitingRoom wr = new WaitingRoom(2); 

      Person person = new Person(); 

      wr.enter(person); 
      System.out.println(wr.waitingPersons()); // 1 
      wr.enter(person); 
      System.out.println(wr.waitingPersons()); // 2 
      wr.enter(person); // full 
   }

das hier versteh ich nicht?! was passiert in dieser methode?
 
Code:
	public static void main(String[] args) {
		// mach einen neuen Warteraum mit 2 Stühlen.. Kapazität 2
		WaitingRoom wr = new WaitingRoom(2);
		// mach einen Person
		Person person = new Person();
		// die Person tritt in den Raum
		wr.enter(person);
		// nun hat es einen Person im Raum: Ausgabe 1
		System.out.println(wr.waitingPersons()); // 1
		// eine Person tritt in den Raum (ja dieselbe, aber egal, wir nehmen an
		// eine andere Person)
		wr.enter(person);
		// nun hat es 2 Person im Raum: Ausgabe 2
		System.out.println(wr.waitingPersons()); // 2
		// eine dritte Person will da rein: enter meint aber: Du kommst hier ned
		// rein, Ausgabe: full
		wr.enter(person); // full
	}
 
moment moment... Queue, LinkedList..

Die Aufgabe besteht darin ein Wartezimmer zu programmieren
war das eine aufgabe von der uni oder schule? bist du dir sicher, dass du klassen der collection api verwenden darfst.
das sind halt immer so standardbeispiele, die man in den ersten 2 monaten, per hand mit arrys implementieren muss...
 
ja es is sogar a strikte regel collections zu verwenden... haben da so nen netten link dazu bekommen und da soll ma uns jetzt allein durchwursteln 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben