- 更新日: 2019年03月27日
- 公開日: 2019年03月25日
【Swift入門】Swift文法を楽しく理解しよう - クラスとインスタンス
Swift基礎学習の最終章「クラス(class)」。
イメージしにくく、とっつきにくいクラスについてやさしく解説します。
本稿で使用する Swift のバージョン: Swift 4.1
【Swift入門】Swift文法を楽しく理解しよう - クラスとインスタンス
クラスとは
クラス(class)は、オブジェクト指向を取り入れたプログラミング言語で登場する機能で、アプリケーションやソフトを開発する時にほぼ必ず使われています。
クラスは、特定のプログラム処理を格納し、同じ機能を使いたい時も
var ○○ = クラス名()
の一言で機能を使うことが可能。このクラス機能のおかげで、複雑なプログラム処理も早い段階から使えます。例えば、 アプリのボリューム調整などに使われる スライダー機能。この複雑なプログラムもクラスのおかげで
var slider = UISlider()
slider.value = 0.3
と Swift コードのことを知らなくても簡単に使えちゃいます。スライダー以外にも スイッチ や ボタン、テキスト入力欄 などたくさんの機能がクラスで整理されて、使えるようになっていますね。
このようなクラスは Apple公式サイトの UIKit で確認することができます。
クラスの理解が必要な理由
Swiftやアプリの学習初期段階では、予め用意されたクラスを使うことがほとんどです。しかし、それは Apple社が用意したコードのため、オリジナリティの演出にはイマイチ。
例えば、先ほどの UISwitch() も 大きさ や 色 を変えたいという場面も出てくるでしょう。そんな時は自分自身で Switch() クラスを作成する必要がでてきます。この時 クラス の基礎を理解しておかないとプログラムを作れない、ということになるんですね。
つまり、クラスの理解はちょっと難しいけれど、分かるようになったらアプリ開発が思いのまま!?にできるようになるということ、スゴイですね。
クラス学習のポイント
クラス学習が難しいと言われる原因は以下のとおりでしょう。
- イメージできない
- 用語が分からない
- どのコード と どのコード が関連しているか分からない
まず 『イメージできない』 については、これは慣れるしかないでしょう。ただ慣れ方は色々あって、恐らくとにかくコードを書いたり、サンプルプログラムを走らせたりして クラス に触れることが大事と思います。
『用語がわからない』、これはクラスのプログラムで登場する用語が複数に及ぶことが原因と考えられます。
- クラス
- インスタンス
- プロパティ
- メソッド
以下の短いクラスのコードの中に上記キーワードが使われていますが、どれがどれか分かりますでしょうか?
print("今日のポエム")
class post {
var text = ""
var author = ""
func sayPost() {
print("『" + text + "』 作者:" + author)
}
}
let myPost = post()
myPost.text = "ああ食べた、ダメだと知ってて食べちゃった、ぷっ"
myPost.author = "おおしま"
myPost.sayPost()
クラスで登場する各用語と頭の中のイメージは、なかなかリンクしにくいです。はじめの内はあまり難しく考えず、クラスが嫌にならないよう感覚的にクラスを覚えていくことをオススメします。とりあえず各用語の意味があまり分からなくても、クラスを使っている内にチョットずつイメージできるようになるでしょう。
最後の 『どのコードとどのコードが関連しているか分からない』、これはコードをじっくり読むことで解決できるでしょう。可能であればコードをプリントアウトして、各キーワードを蛍光ペンでなぞると各コードの関連性を理解できると思いますよ。
用語の説明
それでは実際にクラスのコードを書いて、インスタンスやプロパティといった用語の意味を確認したいと思います。今回は、入力した文字がポエム・テンプレートに入力されるコードをご紹介。
Step.1 クラス名
まずはじめにクラス名を決めます。そして以下のようにコードを記述。
class poem{
}
Step.2 内容を決める(プロパティ)
次にポエムに必要なことを考えます。 ポエム本体 と 作者 は必要ですね。この 2つの要素を変数宣言します。
class poem{
var text = ""
var author = ""
}
Step.3 ポエムの表示(メソッド)
書いたポエムを表示させるための指示をコードで表現します。つまり print()文 と クラス の接続作業です。この工程については 関数 の知識が欠かせません。
今回は showPoem という関数名にして、ポエムと作者を表示するするように指示。
class poem{
var text = ""
var author = ""
func showPoem(){
print("私のポエム: " + text)
print("作者: " + author)
}
}
ここまでがクラスの作成作業になりました。次は作成したクラスを使う方法に進んでいきます。
Step.4 クラスの使用方法 準備
クラスを使うには、一旦以下のような変数宣言のコードが必要になります。
let poem1 = poem()
この工程を インスタンス といいます。これで先ほど作成した poem クラスが使えるようになりました。
Step.5 クラスの使用方法 データの入力
次はポエムを入力して、 poemクラスのテンプレートに出力される作業をしていきます。
まず 入力 については、 Step4 で作成した 「インスタンス poem1」 と Step2で作成した「プロパティ text と author」 を使います。
poem1.text = "ああ食べた、ダメだと知ってて食べちゃった、ぷっ"
poem1.author = "おおしま"
データ入力の書き方としては、
インスタンス名.プロパティ名 = "内容"
となります。
Step.6 クラスの使用方法 データの表示
作成したクラスにデータを入力できたら、あとはそのデータを出力するだけです。 Step.3 で作成した メソッド(関数) を使って、データ出力を指示します。
poem1.showPoem()
書き方としては、
インスタンス名.メソッド名()
あとは Playground を実行すると自分の書いたポエムが出力されていることが確認できます。
これを応用すると、ブログやメッセージアプリなどになりますね。
\Webサイト担当者としてのスキルが身に付く!!/
まとめ
クラス、今までの配列や if文、 for文に比べるとステップが多く、お疲れになった方もいらっしゃるでしょう。また今回ご紹介した内容以外の var や let、それから () や "" など記号の意味が・・・という方もいらっしゃるのでは。
「早く自分のアプリを作りたい」「早く Swiftの基礎を終えたい」という方、 『オンライン × マンツーマン』で定評のある CodeCamp 参考にされてみてはいかがでしょう?無料相談や無料体験も行っていますので、慎重に学習環境を検討できると思いますよ。
- この記事を書いた人
- オシママサラ