C#プログラミングメソッドが分からない件【C#学習メモ】
メソッドやらが分からないので「C#の絵本」81ページに記載してある例文を見て何とか理解しようと頑張ってみます。
using System; class Cat { string name; string place; int age; public void setData(string n, string p, int a) { name = n; place = p; age = a; } public void print() { Console.WriteLine(place + ":" + name + " " + age + "歳"); } public void print(string p, int a) { place = p; Console.WriteLine(place + ":猫は" + a + "匹です"); } public void print(string variety) { Console.WriteLine(place + ":" +name+" "+ age + "歳"+ variety); } } class Pet { static void Main() { Cat cat1 = new Cat(); Cat cat2 = new Cat(); Cat cat3 = new Cat(); cat1.setData("ロビン", "うち", 10); cat2.setData("ちび", "となり", 14); cat1.print("雑種"); cat1.print(); cat1.print("うら",0); } }
3行目クラスCat
の定義
5行目string
型の文字列name
の宣言
6行目string
型の文字列place
の宣言
7行目int
型の整数age
の宣言
9行目setData
という名前のメソッドの定義。戻り値の型はvoid
。n
,p
というstring
型の文字列と、a
というint
型の変数が、引数*1の値を受け取りますよー。
11行目文字列name
にはn
を代入します!
12行目文字列place
にはp
を代入します!
13行目変数age
にはa
を代入します!
16行目print
という名前の文字を表示するメソッドの定義。このメソッドには引数も戻り値もないです。
17行目print
という名前の文字を表示するメソッドの定義。string
型のp
とint
型のa
という変数が、引数の値を受け取りますよー。
18行目print
という名前の文字を表示するメソッドの定義。string
型のvariety
という文字列が、引数を受け取りますよー。
31行目クラスPet
の定義。
33行目Main
という名前の静的なメソッドの定義*2。
36行目Cat
クラスのcat1
というオブジェクトを作ります。*3
37行目Cat
クラスのcat2
というオブジェクトを作ります。
38行目Cat
クラスのcat2
というオブジェクトを作ります。
40行目Cat
クラスのcat1
というオブジェクトの9行目のsetData
というフィールドに()内の引数を渡している。
41行目cat2
というオブジェクトの9行目のsetData
というフィールドに()内の引数を渡している。
43行目36行目で作ったCat
クラスのcat1
というオブジェクトのprint
というフィールドに()内の引数を渡す。対応するフィールドは25行目のpublic void print(string variety)
です。variety="雑種"
になります。
このとき、40行目のcat1
の引数がsetData
に渡されています。それから{}内の処理を行います。
44行目対応するフィールドは16行目のpublic void print()
です。
45行目対応するフィールドは20行目のpublic void print(string p, int a)
です。p="うら"
、a=0
になります。
以下は実行結果です。
ちなみに、22行目を消したら、実行結果は以下のようになりました。(エラーは出ませんでした。)
こうやって1行ずつ意味を調べていくと、
なんとなーくわかってきた気がしました。