Izpitno vprašanje DIRI2005 2100

Iz MaFiRaWiki

Vprašanje

Sestavi razred noj, ki ustvari noja z dano težo (v kilogramih) in hitrostjo (v kilometrih na uro). Upoštevaj, da teža noja ne sme biti manjša od 0, niti večja od 100kg. Tudi hitrost mora biti pozitivna in manjša kot 100 km/h. Napiši ustrezne konstruktorje in metode za branje/nastavljanje teže in hitrosti in pri tem pazi na zagotavljanje pravilnosti podatkov! Napiši tudi metodo toString(), ki pregledno izpiše podatke o noju, ter navedi primer njene uporabe.

Odgovor


Razred NOJ

  1.  
  2. public clas Noj {
  3. private double masa;
  4. private double hitrost;
  5. // konstruktorji
  6. public Noj() {
  7. this.masa = 0.0; // in tehtajo 0kg
  8. this.hitrost = 0.0; //hitrost 0km/h
  9. }
  10. public Noj( double masa) {
  11. this(); // poklicali smo konstruktor Noj()
  12. this.spremeniTezo(masa); // uporabimo metodo za sprem.
  13. }
  14. public Noj( double masa, double hitrost) {
  15. this(); // poklicali smo konstruktor Noj()
  16. this.spremeniTezo(masa); // uporabimo metodo za sprem.
  17. this.spremeniHitrost(hitrost);
  18. }
  19. // get metode
  20. public double povejTezo(){
  21. return this.masa;
  22. }
  23. public double povejHitrost(){
  24. return this.hitrost;
  25. }
  26. //set metode
  27. public boolean spremeniTezo(double novaTeza) {
  28. // smislena nova teza je le med 0 in 100 kg
  29. if ((novaTeza > 0) && (novaTeza <= 100) ){
  30. this.masa = novaTeza;
  31. return true; // sprememba uspela
  32. }
  33. // v nasprotnem primeru NE spremenimo teze
  34. // in javimo, da spremembe nismo naredili
  35. return false;
  36. }
  37. public boolean spremeniHitrost(double novaHitrost) {
  38. // smislena nova hitrost je le med 0 in 100 km/h
  39. if ((novaHitrost > 0) && (novaHitrost <= 100) ){
  40. this.hitrost = novaHitrost;
  41. return true; // sprememba uspela
  42. }
  43. // v nasprotnem primeru NE spremenimo hitrosti
  44. // in javimo, da spremembe nismo naredili
  45. return false;
  46. }
  47. // Ostale metode
  48. //toString metoda
  49.  
  50. public String toString() {
  51.  
  52. return "Noj:\n -teza: " + this.povejTezo() + " kg, \n -hitrost: " +this.povejHitrost() + " km/h" ;
  53. }
  54.  
  55. } // Noj

Uporaba:

  1.  
  2. public clas Noj10 {
  3.  
  4. public static void izpis(Noj n, int stevec) {
  5. System.out.println(stevec+n.toString());
  6. }
  7.  
  8. public static void main(String[] ar) {
  9. Noj[] noji;
  10. noji = new Noj[10];
  11. int stevec =0;
  12. int masa = 0;
  13. int hitrost = 0;
  14.  
  15. while(stevec < 10) {
  16. masa = (int)(Math.random() * 100)+1;
  17. hitrost = (int)(Math.random() * 100)+1;
  18.  
  19. noji[stevec] = new Noj( masa, hitrost);
  20. izpis(noji[stevec], stevec+1);
  21. stevec++;
  22. }
  23. }
  24. }
Osebna orodja