質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

2848閲覧

【swift】classってどういう時に作るんですか?

nyancoro

総合スコア75

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2015/07/12 09:08

皆さんはどのようなタイミングで、新しいファイルに自分でclassを作成するのですか?

使ったことがないのでclassの必要性がイマイチわかっておりません。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

そうですね〜最初の頃はViewControllerに全部書いてしまった方がわかりやすいですもんね^^;;;

classを作り始めるきっかけとなるのは共通処理をまとめるときでしょうか。

例えばViewController内の共有処理をメソッドとして切り出しますよね?
それと同じ感じで別のViewControllerからもその処理を使いたくなったらどうしましょう?

そんなときはその共有処理を処理したいデータと一緒にclassとして切り出します。
そうするといろんなところで使える便利な部品になります。
(普段使うであろうStringクラスもStringに関する機能とデータがまとまっているclassだから
いろんなところで同じように使えて便利なんですね。)

簡単なプログラムだと部品化するまでもない場合が多いですが、プログラムが巨大だったり複雑になるほど部品化するメリットがでてきます。
そんなときにきっとclassを作るメリットを感じることになると思います。

慣れてくると最初から部品を組み立てるようにclassを作ってプログラムをするようになってきます。

より詳しくは「オブジェクト指向」というキーワードで調べるといろいろ出てくるのでご興味あれば^^/

投稿2015/07/12 13:11

jollyjoester

総合スコア1585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyancoro

2015/07/13 16:59

>例えばViewController内の共有処理をメソッドとして切り出しますよね? それと同じ感じで別のViewControllerからもその処理を使いたくなったらどうしましょう? まさにこの状態だったので、すごくわかりやすかったです! 今こそ、classを使ってみる時なんですね! オブジェクト指向と言われる所以も理解できました。自分でも調べてみようと思います^^ ありがとうございました!
guest

0

メモリには、スタックとヒープがあります。
ヒープに実体を持つものを定義するために、classを使う必要があります。
逆に、スタックに実体を持つものを定義するときは、structを使います。

投稿2015/07/12 15:37

Stripe

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyancoro

2015/07/13 17:02

スタックとヒープですか。勉強不足で初めて聞く言葉でした。 これを機会に調べてみます^^ ご回答ありがとうございました!
guest

0

自分の場合は、1つの.swiftファイルにつき、ファイル内には必ず1クラスだけ定義するようにしています。

本題のクラスを作る意味は、作る物に対して1つの概念で括り出せるものをclassとして切り出します、例えばオセロのiOSアプリを作るといった場合に、全部のオセロのプログラムをmain.swiftに書いてしまうっていうのはまず有りえないですよね?

なので、オセロのゲームを組み立てる概念ごとにclassを作ります、盤面(GameStage)クラス、駒(piece)クラス、プレイヤー(player)クラスなど

投稿2015/07/12 12:44

__moai

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyancoro

2015/07/13 16:55

1つの概念で括り出せるものをclassとして切り出すんですね。 勉強になりました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問