【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
先生こんにちは!
コンストラクタの役割についての質問です。 他の方の質問に対して
「クラスの変数(プロパティ)を public として他のクラスから直接アクセスできるのは、スコープが広すぎるのであまり良い書き方ではありません。 よって、プロパティを private にして変数のスコープを小さくするのですが、 private にするとそのクラスからしか参照できないのでコンストラクタで初期化する必要が出てきます。」
public
private
とのお答えがありますが、コンストラクタで初期化したらそこに何でも入ってしまって、せっかく private にしたプロパティが意味なくなってしまうように思えるのですが、べつにメソッドでいじられるわけではないから問題ない、と言う感じでしょうか?
単純にコンストラクタは、 new する時にどこからでも値を参照できる引数と形式?を設定してるだけ、 と考えてよいのでしょうか?
new
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
先生こんにちは!
コンストラクタの役割についての質問です。
他の方の質問に対して
「クラスの変数(プロパティ)を
publicとして他のクラスから直接アクセスできるのは、スコープが広すぎるのであまり良い書き方ではありません。よって、プロパティを
privateにして変数のスコープを小さくするのですが、privateにするとそのクラスからしか参照できないのでコンストラクタで初期化する必要が出てきます。」とのお答えがありますが、コンストラクタで初期化したらそこに何でも入ってしまって、せっかく
privateにしたプロパティが意味なくなってしまうように思えるのですが、べつにメソッドでいじられるわけではないから問題ない、と言う感じでしょうか?単純にコンストラクタは、
newする時にどこからでも値を参照できる引数と形式?を設定してるだけ、と考えてよいのでしょうか?