Ahoj, na úvod říkám, že jsem začátečník, a proto vám muj dotaz bude připadat stupidní. Nicméně můj problém:
Našel jsem si toto zadání:
Vytvořte třídu Bus, která bude představovat autobus. Autobus si bude pamatovat svoji kapacitu (tj. maximální počet přepravovaných osob), aktuální počet přepravovaných pasažérů (iniciálně 0, tj. autobus je prázdný), a na které lince jezdí.
Do třídy Bus přidejte následující metody:
Bus(Line line, int capacity): Konstruktor, který vytvoří autobus dané linky a s danou kapacitou.
boolean getOn(): Metoda pro nástup jednoho pasažéra do autobusu. Pokud je již autobus obsazen, metoda selže a vrátí false. Jinak inkrementuje čítač pasažérů a vrátí true.
boolean getOff(): Metoda pro vystoupení jednoho pasažéra z autobusu. Metoda selže a vrátí false pokud je autobus prázdný.
String toString(): Metoda vrátí textový řetězec popisující stav autobusu ve formátu:
"Bus no. <cislo_linky> is carrying <pocet_pasazeru> passengers."
kde cislo_linky je číslo linky a pocet_pasazeru je aktuální počet pasažérů.
Vytvořte třídu Demo s metodou main spustitelnou z příkazového řádku s následujícím obsahem:
Vytvoří linku č. 41 s koncovými zastávkami "Vranov" a "Semilaso".
Vytvoří linku č. 50 s koncovými zastávkami "Komarov" a "ZOO".
Vytvoří 3 autobusy. První pro linku 41 s kapacitou 22 osob, druhý pro linku 50 s kapacitou 5 osob a třetí opět pro linku 50 s kapacitou 22 osob.
Do prvního autobusu nastoupí jeden pasažér a následně vystoupí dva pasažéři (zdánlivá nelogičnost je zde kvůli otestování vašeho kódu).
Do druhého autobusu nastoupí 6 pasažérů. Toto bude naprogramováno pomocí for cyklu!
Do třetího autobusu nastoupí 2 pasažéři.
Na std. výstup se vypíše stav všech tří autobusů (viz metoda toString(). Při správném řešení by se měl na výstupu objevit následující text:
Bus no. 41 is carrying 0 passengers.
Bus no. 50 is carrying 5 passengers.
Bus no. 50 is carrying 2 passengers.
-------------------------------------------------------------------------------------------------------------------------
Byla tam preddefinovana trida Line:
public class Line
{
private int number;
private String endStation1;
private String endStation2;
/**
* Constructor.
* @param num line number
* @param station1 first end station of the line
* @param station2 second end station of the line
*/
public Line(int num, String station1, String station2) {
number = num;
endStation1 = station1;
endStation2 = station2;
}
/**
* @return line number
*/
public int getLineNumber() {
return number;
}
/**
* @return first end station of the bus line
*/
public String getFirstEndStation() {
return endStation1;
}
/**
* @return second end station of the bus line
*/
public String getSecondEndStation() {
return endStation2;
}
}
---------------------------------------------------------------------------------------------
Moje třída Bus:
public class Bus
{
private int capacity;
private int actualCap=0;
private Line line;
//private int lineNum;
public Bus(Line line, int capacity){
this.line=line;
this.capacity=capacity;
}
public boolean getOn(){
if(actualCap==capacity){
return false;
}else{
actualCap++;
return true;
}
}
public boolean getOff(){
if(actualCap==0){
return false;
}else{
actualCap--;
return true;
}
}
public String toString(){
return "Ahoj";//"Bus no. "+line+" is carrying "+actualCap+" passengers.";
}
}
------------------------------------------------------------------------------------------
A moje třída Demo:
public class Demo
{
public static void main(String[] args){
Line lin1 = new Line(41,"Vranov","Semilaso");
Line lin2 = new Line(50,"Komarov","ZOO");
Bus bus1 = new Bus(lin1,22);
Bus bus2 = new Bus(lin2,5);
Bus bus3 = new Bus(lin2,22);
bus1.getOn();
bus1.getOff();
bus1.getOff();
for(int i=0;i<=5;i++){
bus2.getOn();
}
bus3.getOn();
bus3.getOn();
bus1.toString();
bus2.toString();
bus3.toString();
}
}
Kdyz spustím metodu main, nic se neděje. Můžete mě prosím někdo navézt na správné řešení. Ikdyž jsem si obecné definice tříd, metod, atd. četl, není nad praktickým vysvětlením, abych se případné chybě znova vyhnul. Používám na naučení BlueJ. Děkuji