Skip to content

Commit f6222da

Browse files
author
Jesper Kuutti
committed
Began translating the method part
1 parent bbb7a84 commit f6222da

1 file changed

Lines changed: 75 additions & 17 deletions

File tree

data/osa-2/4-metodit.md

Lines changed: 75 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,51 @@
11
---
22
path: '/osa-2/4-metodit'
3-
title: 'Metodit ja ohjelman jakaminen pienempiin osiin'
3+
# title: 'Metodit ja ohjelman jakaminen pienempiin osiin'
4+
title: 'Methods and dividing the program into smaller parts'
45
---
56

6-
<text-box variant='learningObjectives' name='Oppimistavoitteet'>
7+
<!-- <text-box variant='learningObjectives' name='Oppimistavoitteet'> -->
8+
<text-box variant='learningObjectives' name='Learning objectives'>
79

8-
- Tunnet käsitteet metodi, metodin parametri, metodin palautusarvo ja ohjelman kutsupino.
9-
- Osaat luoda metodeja ja osaat kutsua metodeja sekä pääohjelmasta (`main`-metodi) että muiden metodien sisältä.
10-
- Osaat luoda parametrillisia ja parametrittomia metodeja, ja osaat luoda metodeja, jotka palauttavat arvon.
10+
<!-- - Tunnet käsitteet metodi, metodin parametri, metodin palautusarvo ja ohjelman kutsupino. -->
11+
- You are familiar with the following concepts: method, method parameter, method's return value, and a program's call stack
12+
<!-- - Osaat luoda metodeja ja osaat kutsua metodeja sekä pääohjelmasta (`main`-metodi) että muiden metodien sisältä. -->
13+
- You can create methods and know how to call methods both from the main program (the `main` method) and from inside other methods
14+
<!-- - Osaat luoda parametrillisia ja parametrittomia metodeja, ja osaat luoda metodeja, jotka palauttavat arvon. -->
15+
- You can create parameterized and non-parameterized methods, and you can create methods that return a value
1116

1217
</text-box>
1318

14-
Olemme käyttäneet useita erilaisia komentoja: arvon asettamista, laskutoimituksia, ehtolauseita, ja toistolauseita.
19+
<!-- Olemme käyttäneet useita erilaisia komentoja: arvon asettamista, laskutoimituksia, ehtolauseita, ja toistolauseita. -->
1520

16-
Ruudulle tulostaminen on tehty `System.out.println()`-lauseella ja lukeminen `Integer.valueOf(lukija.nextLine())` lauseella. Ehtolauseessa on käytetty `if`:iä, toistolauseessa `while`:ä ja `for`:ia. Huomaamme, että tulostaminen ja lukeminen poikkeaa `if`:istä, `while`:stä, `for`:ista siinä, että tulostus- ja lukemiskomennon perässä on sulut ja joskus sulkujen sisällä komennolle annettava parametrit. Nämä "sulkuihin päättyvät" eivät oikeastaan olekaan komentoja vaan metodeja.
21+
We have used several different commands: assigning values, calculations, conditional statements, and repeat statements.
1722

18-
Teknisesti ottaen **metodi** tarkoittaa nimettyä lauseista koostuvaa joukkoa, eli ohjelman palaa, jota voi kutsua muualta ohjelmakoodista metodille annetun nimen perusteella. Esimerkiksi koodirivillä `System.out.println("olen metodille annettava parametri!")` kutsutaan metodia, joka suorittaa ruudulle tulostamisen. Metodin sisäinen toteutus -- eli joukko suoritettavia lauseita -- on piilossa, eikä ohjelmoijan tarvitse välittää siitä metodia käytettäessä.
23+
<!-- Ruudulle tulostaminen on tehty `System.out.println()`-lauseella ja lukeminen `Integer.valueOf(lukija.nextLine())` lauseella. Ehtolauseessa on käytetty `if`:iä, toistolauseessa `while`:ä ja `for`:ia. Huomaamme, että tulostaminen ja lukeminen poikkeaa `if`:istä, `while`:stä, `for`:ista siinä, että tulostus- ja lukemiskomennon perässä on sulut ja joskus sulkujen sisällä komennolle annettava parametrit. Nämä "sulkuihin päättyvät" eivät oikeastaan olekaan komentoja vaan metodeja. -->
1924

20-
Tähän mennessä käyttämämme metodit ovat kaikki olleet Javan valmiita metodeita. Opetellaan seuraavaksi tekemään omia metodeita.
25+
Printing to the screen has been done with the statement `System.out.println()`, and reading numbers with the statement `Integer.valueOf(scanner.nextLine())`. Conditional statements have used `if`, repeat statements `while` and `for`. We notice that printing and reading somewhat differ from `if`, `while`, and `and`; the printing and reading commands are followed by parentheses, and sometimes there also are parameters given to the command between the parentheses. These statements "ending with parentheses" are strictly speaking not commands, but rather methods.
2126

27+
<!-- Teknisesti ottaen **metodi** tarkoittaa nimettyä lauseista koostuvaa joukkoa, eli ohjelman palaa, jota voi kutsua muualta ohjelmakoodista metodille annetun nimen perusteella. Esimerkiksi koodirivillä `System.out.println("olen metodille annettava parametri!")` kutsutaan metodia, joka suorittaa ruudulle tulostamisen. Metodin sisäinen toteutus -- eli joukko suoritettavia lauseita -- on piilossa, eikä ohjelmoijan tarvitse välittää siitä metodia käytettäessä. -->
2228

23-
## Omat metodit
29+
Technically speaking, **a method** is a named set of statements - a part of the program that can be called from elsewhere in the program code by using the method's name. For instance the line of code `System.out.println("I am a parameter given to a method!")` calls a methods that handles printing to the screen. The internal implementation of the method -- i.e. the set of statements to be executed -- is hidden, and the programmer need not concern themselves with it when using the method.
2430

25-
**Metodi** tarkoittaa nimettyä lauseista koostuvaa joukkoa, jota voi kutsua muualta ohjelmakoodista nimen perusteella. Ohjelmointikielet tarjoavat valmiita metodeja, mutta ohjelmoija voi myös kirjoittaa omia metodeja. On oikeastaan on melko poikkeuksellista mikäli ohjelmassa ei ole yhtään itse kirjoitettua metodia, sillä metodit auttavat ohjelman jäsentämisessä. Tästä lähtien lähes jokainen kurssilla tehty ohjelma sisältääkin itsekirjoitettuja metodeja.
31+
<!-- Tähän mennessä käyttämämme metodit ovat kaikki olleet Javan valmiita metodeita. Opetellaan seuraavaksi tekemään omia metodeita. -->
2632

27-
Metodit kirjoitetaan ohjelmarunkoon `main`:in aaltosulkeiden ulkopuolelle mutta kuitenkin "uloimmaisten" aaltosulkeiden sisäpuolelle, joko mainin ylä- tai alapuolelle.
33+
Thus far all the methods we have used have been pre-made Java methods. Next we will learn to create our own methods.
2834

29-
```java
35+
36+
<!-- ## Omat metodit -->
37+
38+
## Own methods
39+
40+
<!-- **Metodi** tarkoittaa nimettyä lauseista koostuvaa joukkoa, jota voi kutsua muualta ohjelmakoodista nimen perusteella. Ohjelmointikielet tarjoavat valmiita metodeja, mutta ohjelmoija voi myös kirjoittaa omia metodeja. On oikeastaan on melko poikkeuksellista mikäli ohjelmassa ei ole yhtään itse kirjoitettua metodia, sillä metodit auttavat ohjelman jäsentämisessä. Tästä lähtien lähes jokainen kurssilla tehty ohjelma sisältääkin itsekirjoitettuja metodeja. -->
41+
42+
**A method** means a named set consisting of statements that can be called from elsewhere in the program code by its name. Programming languages offer pre-made methods, but programmers can also write their own ones. It would in fact be quite exceptional if a program used no methods written by the programmer, because methods help in structuring the program. From this point onward nearly every program on the course will therefore contain custom-created methods.
43+
44+
<!-- Metodit kirjoitetaan ohjelmarunkoon `main`:in aaltosulkeiden ulkopuolelle mutta kuitenkin "uloimmaisten" aaltosulkeiden sisäpuolelle, joko mainin ylä- tai alapuolelle. -->
45+
46+
In the code boilerplate, methods are written outside of the curly braces of the `main`, yet inside out the `outermost` curly braces. They can be located above or below the main.
47+
48+
<!-- ```java
3049
import java.util.Scanner;
3150
3251
public class Esimerkki {
@@ -37,19 +56,42 @@ public class Esimerkki {
3756
3857
// omia metodeja tänne
3958
}
59+
``` -->
60+
61+
```java
62+
import java.util.Scanner;
63+
64+
public class Example {
65+
public static void main(String[] args) {
66+
Scanner scanned = new Scanner(System.in);
67+
// program code
68+
}
69+
70+
// your own methods here
71+
}
4072
```
4173

42-
Tarkastellaan uuden metodin luomista. Luodaan metodi `tervehdi`.
74+
<!-- Tarkastellaan uuden metodin luomista. Luodaan metodi `tervehdi`. -->
4375

44-
```java
76+
Let's observe how to create a new method. We'll create the method `greet`.
77+
78+
<!-- ```java
4579
public static void tervehdi() {
4680
System.out.println("Terveiset metodimaailmasta!");
4781
}
82+
``` -->
83+
84+
```java
85+
public static void greet() {
86+
System.out.println("Greetings from the method world!");
87+
}
4888
```
4989

50-
Ja asetetaan se metodeille kuuluvalle paikalle.
90+
<!-- Ja asetetaan se metodeille kuuluvalle paikalle. -->
5191

52-
```java
92+
And then we'll insert it into a suitable place for a method.
93+
94+
<!-- ```java
5395
import java.util.Scanner;
5496
5597
public class Esimerkki {
@@ -63,6 +105,22 @@ public class Esimerkki {
63105
System.out.println("Terveiset metodimaailmasta!");
64106
}
65107
}
108+
``` -->
109+
110+
```java
111+
import java.util.Scanner;
112+
113+
public class Example {
114+
public static void main(String[] args) {
115+
Scanner scanner = new Scanner(System.in);
116+
// program code
117+
}
118+
119+
// your own methods here
120+
public static void greet() {
121+
System.out.println("Greetings from the method world!");
122+
}
123+
}
66124
```
67125

68126
Metodin määrittely sisältää kaksi osaa. Metodimäärittelyn ensimmäisellä rivillä on metodin nimi eli `tervehdi`. Nimen vasemmalla puolella tässä vaiheessa määreet `public static void`. Metodin nimen sisältävän rivin alla on aaltosulkeilla erotettu koodilohko, jonka sisälle kirjoitetaan metodin koodi, eli ne komennot jotka metodia kutsuttaessa suoritetaan. Metodimme `tervehdi` ei tee muuta kuin kirjoittaa rivillisen tekstiä ruudulle.

0 commit comments

Comments
 (0)