Erinevus lehekülje "ITI0011-2015:harjutus 09" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
5. rida: 5. rida:
 
Ülesande sisu on bussipargi busside kirjeldamine. Allpool (vt [[#Mall]]) on antud bussi abstraktne kirjeldus. Te peate seda oma koodis kasutama. Järgmised sammud:
 
Ülesande sisu on bussipargi busside kirjeldamine. Allpool (vt [[#Mall]]) on antud bussi abstraktne kirjeldus. Te peate seda oma koodis kasutama. Järgmised sammud:
 
# loo ''interface'' <code>LoquidFuel</code>, millel oleks kaks meetodi signatuuri: <code>double getRange()</code> ja <code>double getEmission()</code>.
 
# loo ''interface'' <code>LoquidFuel</code>, millel oleks kaks meetodi signatuuri: <code>double getRange()</code> ja <code>double getEmission()</code>.
# loo ''interface'' <code>Hybrid</code>, millel oleks meetodi signatuur: <code>double getColtage()</code>. Lisaks oleks sellel kaks <code>double</code> konsanti: <code>HIGH_VOLTAGE = 600</code> ja <code>LOW_VOLTAGE = 480</code>.
+
# loo ''interface'' <code>Electric</code>, millel oleks meetodi signatuur: <code>double getVoltage()</code>. Lisaks oleks sellel kaks <code>double</code> konstanti: <code>HIGH_VOLTAGE = 600</code> ja <code>LOW_VOLTAGE = 480</code>.
# loo klass <code>Hybrid</code>. Klassi signatuuris peab kasutama nii <code>extends</code> kui ka <code>implements</code> osa.
+
# loo klass <code>Hybrid</code>. Klassi signatuuris peab kasutama nii <code>extends</code> kui ka <code>implements</code> osa. See klass peaks siis kõikidest eelnevatest pärinema.
 
## kirjuta konstruktor
 
## kirjuta konstruktor
 
## lisa väljad <code>voltage</code>, <code>range</code>, <code>emission</code>
 
## lisa väljad <code>voltage</code>, <code>range</code>, <code>emission</code>
 
## realiseerida <code>getRange()</code>, <code>getEmission()</code>, <code>getVoltage()</code>, <code>getAcceleration()</code>.
 
## realiseerida <code>getRange()</code>, <code>getEmission()</code>, <code>getVoltage()</code>, <code>getAcceleration()</code>.
## <code>getAcceleration()</code> tagastab alati 4.0.
+
## <code>getAcceleration()</code> tagastab 4.0.
 
# loo klass <code>FuelBus</code> (liquid fuel bus)
 
# loo klass <code>FuelBus</code> (liquid fuel bus)
 
## lisa väljad <code>range</code>, <code>emission</code>.
 
## lisa väljad <code>range</code>, <code>emission</code>.
 
## kirjuta konstruktor
 
## kirjuta konstruktor
## realiseeri päritud abstraktsed meetid
+
## realiseeri päritud abstraktsed meetodid
## <code>getAcceleration()</code> tagastab alati 3.0.
+
## <code>getAcceleration()</code> tagastab 3.0.
 
# Kirjuta klass <code>ElectricBus</code>
 
# Kirjuta klass <code>ElectricBus</code>
 
## kirjuta konstruktor
 
## kirjuta konstruktor
 
## lisa väli <code>voltage</code>
 
## lisa väli <code>voltage</code>
## <code>getAcceleration()</code> tagastab alati 5.0.
+
## <code>getAcceleration()</code> tagastab 5.0.
  
 
Lisaks tee klass Main ja sinna sisse:
 
Lisaks tee klass Main ja sinna sisse:
# staatiline meetod nimega <code>findBusWithLowestVoltage</code>. Sellel on üks parameeter, mis on <code>List</code> tüüpi. See, milline on listi elemendi andmetüüp, mõtle ise välja. Meetod vaatab etteantud busside nimekirja läbi ja tagastab selle '''objekti''', millise puhul oli kõige väiksem <code>voltage</code> väärtus.
+
# staatiline meetod nimega <code>findBusWithLowestVoltage</code>. Sellel on üks parameeter, mis on <code>List</code> tüüpi. See, milline on listi elemendi andmetüüp, mõtle ise välja. Meetod vaatab etteantud busside nimekirja läbi ja tagastab selle '''objekti''', millise puhul oli kõige väiksem <code>voltage</code> väärtus. Ehk siis <code> public static ? findBusWithLowestVoltage(List<?>)</code>, ? asemele pead panema mingi klassinimetuse.
# staatiline meetood nimega <code>printData</code>, millele samamoodi antakse kaasa <code>List</code>, milles saab hoida erinevaid loodud klasse. Meetod kuvab iga listis oleva sõiduki kohta: id, kiirenduse, kohtade arvu. Lisaks näitab elektriauto puhul voltage väärtust. Vedelkütuse bussi kohta kuvada välja range väärtus.
+
# staatiline meetood nimega <code>printData</code>, millele samamoodi antakse kaasa <code>List</code>, milles saab hoida kõiki erinevaid loodud klasse. Meetod kuvab iga listis oleva sõiduki kohta: id, kiirenduse, kohtade arvu. Lisaks näitab elektriauto puhul voltage väärtust. Vedelkütuse bussi kohta kuvada välja range väärtus.
# main-funktsioonis loo üks list, kuhu paned kõiki erinevat tüüpi busse. Kutsu välja kahte teist staatilist muutujat ja fürreke
+
# main-funktsioonis loo üks list, kuhu paned kõiki erinevat tüüpi busse. Kutsu välja kahte teist staatilist meetodit.
  
 
== Mall ==
 
== Mall ==

Redaktsioon: 18. märts 2015, kell 06:45

Kirjeldus

Ülesandes harjutame interface'i ja abstraktse klassi kasutamist.

Ülesande sisu on bussipargi busside kirjeldamine. Allpool (vt #Mall) on antud bussi abstraktne kirjeldus. Te peate seda oma koodis kasutama. Järgmised sammud:

  1. loo interface LoquidFuel, millel oleks kaks meetodi signatuuri: double getRange() ja double getEmission().
  2. loo interface Electric, millel oleks meetodi signatuur: double getVoltage(). Lisaks oleks sellel kaks double konstanti: HIGH_VOLTAGE = 600 ja LOW_VOLTAGE = 480.
  3. loo klass Hybrid. Klassi signatuuris peab kasutama nii extends kui ka implements osa. See klass peaks siis kõikidest eelnevatest pärinema.
    1. kirjuta konstruktor
    2. lisa väljad voltage, range, emission
    3. realiseerida getRange(), getEmission(), getVoltage(), getAcceleration().
    4. getAcceleration() tagastab 4.0.
  4. loo klass FuelBus (liquid fuel bus)
    1. lisa väljad range, emission.
    2. kirjuta konstruktor
    3. realiseeri päritud abstraktsed meetodid
    4. getAcceleration() tagastab 3.0.
  5. Kirjuta klass ElectricBus
    1. kirjuta konstruktor
    2. lisa väli voltage
    3. getAcceleration() tagastab 5.0.

Lisaks tee klass Main ja sinna sisse:

  1. staatiline meetod nimega findBusWithLowestVoltage. Sellel on üks parameeter, mis on List tüüpi. See, milline on listi elemendi andmetüüp, mõtle ise välja. Meetod vaatab etteantud busside nimekirja läbi ja tagastab selle objekti, millise puhul oli kõige väiksem voltage väärtus. Ehk siis public static ? findBusWithLowestVoltage(List<?>), ? asemele pead panema mingi klassinimetuse.
  2. staatiline meetood nimega printData, millele samamoodi antakse kaasa List, milles saab hoida kõiki erinevaid loodud klasse. Meetod kuvab iga listis oleva sõiduki kohta: id, kiirenduse, kohtade arvu. Lisaks näitab elektriauto puhul voltage väärtust. Vedelkütuse bussi kohta kuvada välja range väärtus.
  3. main-funktsioonis loo üks list, kuhu paned kõiki erinevat tüüpi busse. Kutsu välja kahte teist staatilist meetodit.

Mall

Bus.java

<source lang="java">

/**

* Abstract class of Bus.
*/

public abstract class Bus { /** * Unique id. */ private int id; /** * Capacity of the bus. */ private int capacity; /** * Static field which holds the next id. * When a new bus is created, the value is incremented. */ private static int nextId = 1;

/** * Constructor. As this is an abstract class, * creating Bus directly (Bus b = new Bus();) * is not allowed. But this method can be used * by subclass(es). * @param capacity */ public Bus(int capacity) { /* * Let's take next id from a static field. * Static field holds the next id number. * When a new bus is created, the number is increased. * That way every bus gets a unique id. */

id = nextId++;

this.capacity = capacity; }

/** * Returns acceleration of the bus. * @return Acceleration. */ public abstract double getAcceleration();

/** * Returns the id of the bus. * @return Id. */ public int getId() { return id; }

/** * Returns the capacity of the bus. * @return Capacity. */ public int getCapacity() { return capacity; } }

</source>