luento16esimerkkeja
 All Classes Files Functions Variables Properties
ElaimetPerimalla.cs
Go to the documentation of this file.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 
6 
7 /// @author Vesa Lappalainen
8 /// @version 27.10.2012
9 /// <summary>
10 /// Esimerkkejä olioista
11 /// </summary>
12 public class ElaimetPerimalla
13 {
14  /// <summary>
15  /// Tutkitaan olioiden käyttäytymistä
16  /// </summary>
17  public static void Main()
18  {
19  Kissa miuku = new Kissa("Miuku", 900);
20  Kissa mirri = new Kissa("Mirri", 19000);
21  Koira musti = new Koira("Musti", 2700);
22  Koira pluto = new Koira("Pluto", 500);
23 
24  miuku.Aantele();
25  mirri.Aantele();
26  musti.Aantele();
27  Console.WriteLine(miuku); // kutsuu oikeasti miuku.ToString();
28  Console.WriteLine(musti);
29 
30  List<Elain> elaimet = new List<Elain>();
31  Elain[] elukatTaulukossa = { miuku, mirri, musti, pluto };
32  elaimet.Add(miuku);
33  elaimet.Add(mirri);
34  elaimet.Add(musti);
35  elaimet.Add(pluto);
36 
37  foreach (Elain elain in elaimet)
38  elain.Aantele();
39 
40  pluto.Juoksuvauhti = 50; // Javassa pluto.setJuoksuvauhti(59);
41  musti.Kuolaa = true;
42 
43  foreach (Elain elain in elaimet)
44  Console.WriteLine(elain);
45  }
46 }
47 
48 
49 /// <summary>
50 /// Elain-luokka, joka osaa äännellä
51 /// </summary>
52 public class Elain
53 {
54  private string nimi; // attribuutti
55  private double paino;
56 
57  /// <summary>
58  /// Alustetaan eläimen nimi ja paino
59  /// </summary>
60  /// <param name="nimi">eläimelle annettava nimi</param>
61  /// <param name="paino">eläimen alkuperäinen paino</param>
62  public Elain(string nimi, double paino) // muodostaja
63  {
64  this.nimi = nimi;
65  this.paino = paino;
66  }
67 
68 
69  /// <summary>
70  /// Yleinen eläin ei osaa äännellä
71  /// </summary>
72  public virtual void Aantele() // metodi
73  {
74  Console.WriteLine("???");
75  }
76 
77 
78  /// <summary>
79  /// Eläimen tiedot merkkijonona
80  /// </summary>
81  /// <returns>Eläimen tiedot merkkijonona</returns>
82  public override string ToString()
83  {
84  return nimi + " " + paino;
85  }
86 }
87 
88 
89 /// <summary>
90 /// Kissa-luokka, joka osaa äännellä
91 /// </summary>
92 public class Kissa : Elain
93 {
94  private int hannanpituus;
95 
96  /// <summary>
97  /// Alustetaan kissan nimi ja paino
98  /// </summary>
99  /// <param name="nimi">kissalle annettava nimi</param>
100  /// <param name="paino">kissan alkuperäinen paino</param>
101  public Kissa(string nimi, double paino) : base(nimi, paino)
102  {
103  hannanpituus = 20;
104  }
105 
106 
107  /// <summary>
108  /// Ääntelee kuten kissa ääntelee
109  /// </summary>
110  public override void Aantele() // metodi
111  {
112  Console.WriteLine("Miuaa");
113  }
114 
115 
116  /// <summary>
117  /// Kissan tiedot merkkijonona
118  /// </summary>
119  /// <returns>Kissan tiedot merkkijonona</returns>
120  public override string ToString()
121  {
122  return base.ToString() + " " + hannanpituus;
123  }
124 
125 }
126 
127 /// <summary>
128 /// Koira-luokka, joka osaa äännellä
129 /// </summary>
130 public class Koira : Elain
131 {
132  private bool kuolaa = false;
133  public bool Kuolaa
134  {
135  set { kuolaa = value; } // pluto.Kuolaa = false;
136  get { return kuolaa; } // if ( pluto.Kuolaa ) ...
137  }
138 
139  public double Juoksuvauhti { get; set; } // luo automaattisesti vastaavan attribuutin
140 
141  /// <summary>
142  /// Alustetaan koiran nimi ja paino
143  /// </summary>
144  /// <param name="nimi">koiralle annettava nimi</param>
145  /// <param name="paino">koiran alkupeärinen paino</param>
146  public Koira(string nimi, double paino, bool kuolaa = false) : base(nimi, paino)
147  {
148  this.Kuolaa = kuolaa;
149  Juoksuvauhti = 40;
150  }
151 
152 
153  /// <summary>
154  /// Ääntelee kuten koira ääntelee
155  /// </summary>
156  public override void Aantele() // metodi
157  {
158  Console.WriteLine("Hau hau");
159  }
160 
161 
162  /// <summary>
163  /// Koiran tiedot merkkijonona
164  /// </summary>
165  /// <returns>Koiran tiedot merkkijonona</returns>
166  public override string ToString()
167  {
168  return base.ToString() + " " + Kuolaa + " " + Juoksuvauhti;
169  }
170 }
171 
172