P.126~
*引数のデフォルト値を指定する
関数を定義するとき、引数のデフォルト値をしていることができます。
デフォルト値とは初期値という意味で、関数を呼び出すときにその引数が指定されなかったら、
デフォルト値を記述します
1畳を平米に変換するプログラム
P.126~
*引数のデフォルト値を指定する
関数を定義するとき、引数のデフォルト値をしていることができます。
デフォルト値とは初期値という意味で、関数を呼び出すときにその引数が指定されなかったら、
デフォルト値を記述します
1畳を平米に変換するプログラム
教科書P.124~
再帰とは、関数の中で、その関数自身を呼び出すことを「再帰」
と呼びます。
普通は、for構文を使って書きます。
再帰関数を定義すると
再帰関数を使用して、階乗を求める
(3の階乗=1×2×3)が階乗
ってなります。
ひとまず、「関数の中で関数を呼ぶことができる」と覚えておきましょ。
P.119~
関数を定義する際、関数の直下にクォートを3つ重ねた
三重引用符の文字列を記述すると
それが「docstring」として認識されます。
docstringとは、関数などに説明文をつけるための機能です。
てなわけで日が空いたんですが…
とりあえず教科書から抜粋…
時間ができたらコメントとか修正したいなぁって欲望
Chapter3-3
文字列の操作
文字列の生成と演算
クオート、三重引用符で文字列を作成する
ファイル名
VSコードでやってますよ
print-str.py
--------
---------
P.314
4.7.6 ポリモーフィズムを利用する
●ポリモーフィズム
スーパークラスのメソッドをオーバーライドしたとき、スーパークラスのメソッドはインスタンスに関連付けられる時点で廃棄状態になります。このため、スーパークラス型の参照変数にサブクラスのインスタンスを代入した場合、廃棄状態にあるスーパークラスのメソッドではなく、新たに上書きしたオーバーライドメソッドが呼び出されます。
このことを、オブジェクトのポリモーフィズム(多様性)と呼びます。
→ポイント
参照変数の型とは無関係に、インスタンスの型によって起動するメソッドが決定します
▼スーパークラス Class1(Class1)(Polymorphism)
--------------------------------------------------
Public MustInherit Class Class1
Public MustOverride Sub ShowMsg(msg As String, title As String)
End Class
--------------------------------------------------
▼サブクラス Class2(Class2)
--------------------------------------------------
Public Class Class2
Inherits Class1
Public Overrides Sub ShowMsg(msg As String, title As String)
MessageBox.Show(msg, title)
End Sub
End Class
--------------------------------------------------
▼サブクラス Class3(Class3)
--------------------------------------------------
Public Class Class3
Inherits Class1
Public Overrides Sub ShowMsg(msg As String, title As String)
InputBox(msg, title)
End Sub
End Class
--------------------------------------------------
▼(Form1)
--------------------------------------------------
Public Class Form1
Private obj As Class1
Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
obj = New Class2()
End Sub
Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton2.CheckedChanged
obj = New Class3()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
obj.ShowMsg("メッセージを表示します", "確認")
End Sub
End Class
--------------------------------------------------
どうしてわざわざ、ポリモーフィズムを使う必要があるの?
あらかじめスーパークラスの参照変数を宣言しておけば、
サブクラスごとに変数を用意する必要もなくなり、コードもすっきりする。
さらに、どのサブクラスのインスタンスが格納されているのかによって
呼び出されるオーバーライドメソッドが決まるので、メソッドを呼び出すコードも1つあれば済む♪
ソースコードの構造がわかりやすいという点で非常に重要なことなんです☆
(P.303)
4.6.2 サブクラスの継承
サブクラスをさらに継承して、サブクラスを作成することができる。
(Class1.vb)(AdditionalInherits)
----------------------------
Public Class Class1
Public Property Num
Public Sub Add(n As Integer)
Num += n
End Sub
End Class
----------------------------
(Class2.vb)
----------------------------
Public Class Class2
Inherits Class1
Public Property Record
Public Sub Recorder()
Record = Num
End Sub
End Class
----------------------------
(Class3.vb)
----------------------------
Public Class Class3
Inherits Class2
Public Sub Subtract(vol As Integer)
Num -= vol
End Sub
End Class
----------------------------
(Form1.vb)
----------------------------
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim obj As New Class3()
obj.Add(100)
obj.Recorder()
obj.Subtract(50)
MessageBox.Show("Num = " & obj.Num & vbCrLf &
"Record = " & obj.Record)
End Sub
End Class
----------------------------