Java fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.8 KiB

4 years ago
  1. Tässä tehtävässä harjoitellaan olioiden luomista ja niiden metodien kutsumista käyttäen apuna alla olevaa valmista Auto-luokkaa. Tallenna tehtävänannon lopussa oleva luokka itsellesi tiedostoon Auto.java ja luo uusi luokka AutoOhjelma, jonka main-metodissa teet seuraavat toimenpiteet:
  2. 1) Luo uusi "Tesla"-merkkinen auto ja laita viittaus tähän olioon talteen muuttujaan
  3. 2) Luo toinen "BMW"-merkkinen auto ja laita viittaus tähän olioon talteen eri muuttujaan
  4. 3) Kutsu Teslan aja-metodia arvolla 100.
  5. 4) Kutsu BMW:n aja-metodia arvolla 98.
  6. 5) Kutsu Teslan aja-metodia arvolla 23.
  7. 6) Tulosta Teslan merkkijonoesitys (toString) omalle rivilleen
  8. 7) Tulosta BMW:n merkkijonoesitys (toString) omalle rivilleen
  9. Huom! Koska kilometrit on yksityinen muuttuja, sen arvoa ei voida muuttaa luokan ulkopuolelta. Sinun on siis muutettava arvoa julkisen aja-metodin kautta.
  10. ```
  11. /**
  12. * Tallenna tämä luokka itsellesi Auto.java-nimiseen tiedostoon.
  13. */
  14. public class Auto {
  15. /*
  16. * Nämä muuttujat ovat jokaiselle autolle yksilölliset ja ne säilyvät koko olion
  17. * olemassaolon ajan.
  18. */
  19. private String merkki;
  20. private int kilometrit;
  21. /**
  22. * Tällä konstruktorilla alustetaan olion muuttujiin new-luontikäskyssä annetut
  23. * arvot.
  24. *
  25. * @param merkki
  26. */
  27. public Auto(String merkki) {
  28. this.merkki = merkki;
  29. this.kilometrit = 0;
  30. }
  31. /**
  32. * Tällä julkisella metodilla tarjotaan ulkopuolisille luokille mahdollisuus
  33. * muuttaa auton matkamittaria.
  34. *
  35. * @param kilometrit Kasvatettava kilometrimäärä kokonaislukuna
  36. */
  37. public void aja(int kilometrit) {
  38. this.kilometrit += kilometrit;
  39. }
  40. /**
  41. * toString-metodin avulla olioista voidaan muodostaa automaattisesti loogisia
  42. * merkkijonoesityksiä.
  43. */
  44. @Override
  45. public String toString() {
  46. return this.merkki + ", " + this.kilometrit + " km.";
  47. }
  48. }
  49. ```
  50. Älä palauta Auto-luokkaa Viopeen, se löytyy Viopesta valmiina.
  51. ```
  52. Example output:
  53. Tesla, 123 km.
  54. BMW, 98 km.
  55. ```
  56. ------------------
  57. ```
  58. /*
  59. 1. Luo uusi "Tesla"-merkkinen auto ja laita viittaus tähän olioon talteen muuttujaan
  60. 2. Luo toinen "BMW"-merkkinen auto ja laita viittaus tähän olioon talteen eri muuttujaan
  61. 3. Kutsu Teslan aja-metodia arvolla 100.
  62. 4. Kutsu BMW:n aja-metodia arvolla 98.
  63. 5. Kutsu Teslan aja-metodia arvolla 23.
  64. 6. Tulosta Teslan merkkijonoesitys (toString) omalle rivilleen
  65. 7. Tulosta BMW:n merkkijonoesitys (toString) omalle rivilleen
  66. */
  67. public class AutoOhjelma {
  68. public static void main(String[] args) {
  69. Auto Tesla = new Auto("Tesla");
  70. Auto BWM = new Auto("BMW");
  71. Tesla.aja(100);
  72. BWM.aja(98);
  73. Tesla.aja(23);
  74. System.out.println(Tesla.toString());
  75. System.out.println(BWM.toString());
  76. }
  77. }
  78. ```