Nx = newllä luotu näin mones "olio" keosta, &Nx = viittaa x:äänteen new:llä luotuun olioon.
    staattiset aliohjelmat Metodit Keko Apu Tulostus
keko muuttuja   Juna N1(Juna) N2(Juna)    
metodi globaalit main() tarkastaTilanne(Juna) Juna(bool, int) odottele(int) onkoTarpeeksiMatkustajia() toString()            
* = viite   * * * *   *   * *            
rivi lipunHinta pendo pika j this onPendolino m this minuutteja this this minuuttejaMyohassa matkustajia minuuttejaMyohassa matkustajia    
02: private static int lipunHinta = 50; 50                                
32: Juna pendo = new Juna(true,40);                       0 0        
08: public Juna(boolean onPendolino, int m)         &N1 true 40                    
09: if (onPendolino) minuuttejaMyohassa = 15;                     15          
10: matkustajia = m;                       40        
32 Juna pendo = new Juna(true,40);
  &N1                              
33: Juna pika = new Juna(false,20);                           0 0    
08: public Juna(boolean onPendolino, int m)         &N2 false 20                    
09: if (onPendolino) minuuttejaMyohassa = 15;                                
10: matkustajia = m;                           20    
33: Juna pika = new Juna(false,20);     &N2                            
34: pendo.onkoTarpeeksiMatkustajia();                   &N1              
14: if (minuuttejaMyohassa++ > 20)                        16       15>20 ei  
16: if (++matkustajia <= 20) {                         41     41<=20 ei  
20: else return true;                               palautetaan true  
35: pendo.odottele(30);               &N1                  
12: public void odottele(int minuutteja) {minuuttejaMyohassa += minuutteja;}                 30     46       16+30=46  
36: pika.odottele(20);               &N2                  
12: public void odottele(int minuutteja) {minuuttejaMyohassa += minuutteja;}                 20         20   0+20 = 20  
37: pika.onkoTarpeeksiMatkustajia();                   &N2              
14: if (minuuttejaMyohassa++ > 20)                            21   20 > 20 ei  
16: if (++matkustajia <= 20) {                             21 21 <= 20 ei  
20: else return true;                               palautetaan true  
38: tarkastaTilanne(pendo);       &N1                          
27: if (!!!j.onkoTarpeeksiMatkustajia()) lipunHinta++;                   &N1              
14: if (minuuttejaMyohassa++ > 20)                        47       46 > 20 on  
15: matkustajia += (20-minuuttejaMyohassa);                         14     41+(20-47) = 14  
16: if (++matkustajia <= 20) {                         15     15 <= 20 joo  
17: matkustajia -= 10;                         5     15-10 = 5  
18: return false;                               palautetaan false  
27: if (!!!j.onkoTarpeeksiMatkustajia()) lipunHinta++; 51                             !!!false = true  
28: lipunHinta += 5; 56                             glob 51+5 = 56  
29: }                                  
39: tarkastaTilanne(pika);       &N2                          
27: if (!!!j.onkoTarpeeksiMatkustajia()) lipunHinta++;                   &N2              
14: if (minuuttejaMyohassa++ > 20)                            22   21 > 20, on  
15: matkustajia += (20-minuuttejaMyohassa);                             19 21+20-22 = 19  
16: if (++matkustajia <= 20) {                             20 20 <= 20 joo  
17: matkustajia -= 10;                             10 20-10 = 10  
18: return false;                               palautetaan false  
27: if (!!!j.onkoTarpeeksiMatkustajia()) lipunHinta++; 57                             !!!false = true  
28: lipunHinta += 5; 62                             57+5 = 62  
29: }                                  
40: System.out.println(pendo);                     &N1            
23: return String.format("Matkustajia %d, myöhässä %d min",matkustajia,minuuttejaMyohassa);                               palautetaan: Matkustajia 5, myöhässä 47 min  
40: System.out.println(pendo);                                 Matkustajia 5, myöhässä 47 min
41: System.out.println(pika);                     &N2            
23: return String.format("Matkustajia %d, myöhässä %d min",matkustajia,minuuttejaMyohassa);                               palautetaan: Matkustajia 10, myöhässä 22 min  
41: System.out.println(pika);                                 Matkustajia 10, myöhässä 22 min
42: System.out.printf("Lippu maksaa %d euroa.", lipunHinta);                                 Lippu maksaa 62 euroa.
43: }                       ROSKAKSI ROSKAKSI