{"id":424,"date":"2020-01-08T19:18:53","date_gmt":"2020-01-08T17:18:53","guid":{"rendered":"https:\/\/coursepages.uta.fi\/tiea2-1a\/?page_id=424"},"modified":"2020-01-08T19:50:00","modified_gmt":"2020-01-08T17:50:00","slug":"automaattinen","status":"publish","type":"page","link":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/kevat-2020\/harjoitukset\/tarkistus\/automaattinen\/","title":{"rendered":"Automaattinen"},"content":{"rendered":"<p>WETO tarkistaa palautuksia automaattisesti tulosteita vertailemalla ja tutkimalla luokkien rakennetta ja toiminnallisuutta.<\/p>\n<p>Varmista edelleen tulosteita vertailemalla tarkistettavissa teht\u00e4viss\u00e4, ett\u00e4 ohjelmasi toimii esimerkkien mukaisesti. Huomaa, ett\u00e4 rivien alkuun tai loppuun ei tulosteta v\u00e4lily\u00f6ntej\u00e4 ja ett\u00e4 kaikki tulostettavat rivit \u2013 viimeinen rivi mukaan lukien \u2013 p\u00e4\u00e4tet\u00e4\u00e4n rivinvaihtoon. Tulosteiden vertailusta ja WETOn tekemist\u00e4 tyylitarkistuksista on kerrottu tarkemmin <a href=\"https:\/\/coursepages2.tuni.fi\/tiep1-1\/syksy-2019\/harjoitukset\/ratkaisujen-tarkistus\/automaattinen\/\" rel=\"noopener\">Lausekielinen ohjelmointi I -kurssin ohjeissa<\/a>.<\/p>\n<p>Ohjelmien rakenteen ja toiminnallisuuden automaattinen tarkistus on tarkempaa kuin Lausekielinen ohjelmointi II -kurssilla, jonka k\u00e4yt\u00e4nteit\u00e4 on kuvattu <a href=\"https:\/\/coursepages2.tuni.fi\/tiep5-1\/syksy-2019\/harjoitukset\/ratkaisujen-tarkistus\/automaattinen\/\" rel=\"noopener\">t\u00e4\u00e4ll\u00e4<\/a>.<\/p>\n<p>Suurin ero aiempaan kurssiin on se, ett\u00e4 tavalliset (vakioimattomat) attribuutit ovat sallittuja ja ett\u00e4 muutkin\u00a0n\u00e4kyvyysm\u00e4\u00e4reet kuin <strong>public<\/strong> ovat mahdollisia.<\/p>\n<p>T\u00e4ysin uutta on se, ett\u00e4 yksityiskohtaisemman tarkistuksen vuoksi luokan rakenne on usein kiinnitetty siten, ett\u00e4 attribuuttien nimet on m\u00e4\u00e4ritelty teht\u00e4v\u00e4nannossa.<\/p>\n<p>Tavalliset attribuutit oletetaan <strong>private<\/strong>-m\u00e4\u00e4reen avulla k\u00e4tketyiksi ja attribuutin aksessoreista oletetaan seuraavaa:<\/p>\n<ul>\n<li>Aksessorit on m\u00e4\u00e4ritelty julkisiksi <strong>public<\/strong>-m\u00e4\u00e4reell\u00e4.<\/li>\n<li>Aksessorit on nimetty kuormittaen siten, ett\u00e4 sek\u00e4 luku- ett\u00e4 asetusmetodien tunnuksena k\u00e4ytet\u00e4\u00e4n attribuutin tunnusta sellaisenaan.<\/li>\n<li>Lukumetodit ovat parametrittomia ja niiden tyypit ovat samat kuin vastaavien attribuuttien tyypit.<\/li>\n<li>Asetusmetodit ovat <strong>void<\/strong>-tyyppi\u00e4 ja kullakin niist\u00e4 on attribuuttinsa tyypin mukainen parametri.<\/li>\n<\/ul>\n<p>Jos luokassa on esimerkiksi <strong>int<\/strong>-tyyppinen <em>paino<\/em>-attribuutti, WETO olettaa sen aksessoreiden otsikoiden olevan parametrin tunnusta <em>kg<\/em> lukuunottamatta:<\/p>\n<pre><strong>public int <\/strong>paino()\r\n<strong>public void<\/strong> paino(<strong>int<\/strong> kg)<\/pre>\n<p>N\u00e4in yll\u00e4 annettu asettaja voitaisiin m\u00e4\u00e4ritell\u00e4 my\u00f6s esimerkiksi n\u00e4in:<\/p>\n<pre><strong>public void<\/strong> paino(<strong>int<\/strong> uusiPaino)<\/pre>\n<p>koska asettavien metodien parametrien tunnukset ovat vapaavalintaisia.<\/p>\n<p>Teht\u00e4v\u00e4ss\u00e4 mainitaan, jos attribuutti tai aksessori tulee m\u00e4\u00e4ritell\u00e4 oletetusta poikkevalla tavalla.<\/p>\n<p>Teht\u00e4v\u00e4nannossa m\u00e4\u00e4ritellyn piirteen haku on tyypillinen rakennetesti. M\u00e4\u00e4rittele siksi luokan piirteet t\u00e4sm\u00e4lleen teht\u00e4v\u00e4ss\u00e4 pyydetyll\u00e4 tavalla. \u00c4l\u00e4 k\u00e4yt\u00e4 esimerkiksi <strong>static<\/strong>-m\u00e4\u00e4rett\u00e4 tarpeettomasti.<\/p>\n<p>WETO voi arvioida luokan toimintaa kutsumalla sen metodeja suoraan testiluokan ohi sek\u00e4 oikeellisilla ett\u00e4 virheellisill\u00e4 sy\u00f6tteill\u00e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WETO tarkistaa palautuksia automaattisesti tulosteita vertailemalla ja tutkimalla luokkien rakennetta ja toiminnallisuutta. Varmista edelleen tulosteita vertailemalla tarkistettavissa teht\u00e4viss\u00e4, ett\u00e4 ohjelmasi toimii esimerkkien mukaisesti. Huomaa, ett\u00e4 rivien alkuun tai loppuun ei tulosteta v\u00e4lily\u00f6ntej\u00e4 ja ett\u00e4 kaikki tulostettavat rivit \u2013 viimeinen rivi mukaan lukien \u2013 p\u00e4\u00e4tet\u00e4\u00e4n rivinvaihtoon. Tulosteiden vertailusta ja WETOn tekemist\u00e4 tyylitarkistuksista on kerrottu tarkemmin Lausekielinen &hellip; <a href=\"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/kevat-2020\/harjoitukset\/tarkistus\/automaattinen\/\" class=\"more-link\">Jatka artikkeliin <span class=\"screen-reader-text\">Automaattinen<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"parent":422,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-424","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages\/424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/comments?post=424"}],"version-history":[{"count":12,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages\/424\/revisions"}],"predecessor-version":[{"id":443,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages\/424\/revisions\/443"}],"up":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages\/422"}],"wp:attachment":[{"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/media?parent=424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}