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

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

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

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

解決済

3回答

3849閲覧

イニシャライザの存在理由が分かりません

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

1クリップ

投稿2015/06/07 12:54

編集2015/06/07 13:41

プログラミング初心者で最近やっとクラスにたどり着きました。
ちなみにswiftを学んでいます。
イニシャライザについて教えてください。
イニシャライザは参考書を読むと「インスタンス作成時に実行したい処理を書く」というように記載されていますが、全く意味が分かりません。
クラスの中で初期値を設定する際、initではなく、インスタンスプロパティにそのまま初期値を設定するのも一緒なのではないかと思うのですが、どういった処理を行う時に違うのでしょうか?
まとまりのない文ですがよろしくお願いします。

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

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

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

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

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

guest

回答3

0

クラスの中で初期値を設定する際、initではなく、インスタンスプロパティにそのまま初期値を設定するのも一緒なのではないかと思うのですが、

インスタンスプロパティ宣言時に初期値を与えることとの比較でしょうか。
それだと、インスタンス生成時に引数でインスタンスプロパティの初期値を与えるということが出来ません。

投稿2015/06/07 14:09

otn

総合スコア84533

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

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

退会済みユーザー

退会済みユーザー

2015/06/07 14:44

御回答ありがとうございます。 自分の意図していた解答でとても分かりやすかったです。 先の回答者様のおかげで理解し、その後にotn様の御回答を見させて頂いたのでイニシャライザの意味をはっきりと確信することが出来ました。 ありがとうございました。
guest

0

一人で小さなプロジェクトをやる場合はあまり意味を感じることができないかもしれません。

ただ、多人数で大きなプロジェクトをやる際に、そのクラスのインスタンスの正しい初期化の仕方を全員知っていると期待するのは難しくなります。
そんな時にイニシャライザがあると、そのクラスの初期化に何が必要かということが誰でもわかるようになりますし、必要な初期化を忘れることで発生する不具合を防ぐことができます。

3ヶ月後くらいにもなると自分の書いたコードもよく覚えてないので自分のためにもイニシャライザをちゃんと整理しておくことをお勧めします^^

投稿2015/06/07 13:43

jollyjoester

総合スコア1585

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

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

退会済みユーザー

退会済みユーザー

2015/06/07 14:32

御回答ありがとうございました。 わざわざ長文を書いて頂いてすみません。
guest

0

ベストアンサー

class A{
int a = 10;

void init()
{
a = 10;
}
}

やってる事は同じですが、作成した後に、初期化する時にinitに書いておくとそのメソッドで出来ます。

投稿2015/06/07 13:43

MasaakiIrie

総合スコア1021

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

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

退会済みユーザー

退会済みユーザー

2015/06/07 14:27

記載して頂いたコードはswiftではないと思いますが、ヒントを頂けたのと自分なりに理解出来たのでベストアンサーにさせて頂きます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問