11月7日(金)3、4コマ目

今日、やったこと

  • [練習問題 解説]練習問題3
  • クラス
    • イニシャライザ
    • プロパティ
    • メソッド
  • [練習問題]練習問題4

今日のホワイトボード

[練習問題 解説]練習問題3

前回の続き。

3-5、3-6

max()の引数の配列の要素数が0ならnilを返すため、戻り値はOptional型。

max()関数の戻り値を使うには、アンラップが必要。


[クラス]イニシャライザ

JavaやC#のコンストラクタ。

イニシャライザ内では、まずプロパティの初期化を行うこと。

図 イニシャライザ内の処理順序


[クラス]コンビニエンスイニシャライザ

JavaやC#でできたコンストラクタのオーバーロードがSwiftではNG。

代わりにコンビニエンスイニシャライザがある。

コンビニエンスイニシャライザ内では、まず、指定イニシャライザを実行すること。

図 指定イニシャライザとコンビニエンスイニシャライザの関係


簡単なサンプルで確認。

インスタンス生成には new はいらない


[クラス]プロパティ

何に紐づくか(インスタンス?クラス?)、値を保持する(=Javaのフィールド)、値を保持しない(処理をする)かで分類ができる。

図 プロパティの分類

一見、ややこしそうに見えるが、何気に今までのフィールドやプロパティと同じ。


[クラス]メソッド

メソッドもプロパティ同様、インスタンスに紐づくインスタンスメソッドと、クラスに紐づくタイプメソッドがある。


[クラス]タイプxxとクラスxxの違い

両方ともクラスに紐づく点は同じ。

違いはオーバーライドできるか、できないか。

タイプxxはサブクラスでオーバーライドできない。

クラスxxはサブクラスでオーバーライドできる。


[練習問題]練習問題4

クラスの問題。正解例をあげておきます。

4-1


4-2


次回は

構造体。


 

このブログの人気の投稿

11月25日(火)3、4コマ目

11月17日(月)3 コマ目