Javascript(4日目)とLinuxの学習(2日目)
今日(1/4)も引き続き JavascriptとLinuxの学習を進める。今日はlinux標準教科書の2章目になり、インストールが課題になっているのでしっかり終わらせたい。
クラスを学ぶ
オブジェクトと関数
クラスを学ぶ前にまずはオブジェクトの復習。オブジェクトとは{}の中にプロパティ:値と書かれている文のこと。ちなみにプロパティとは属性のようなものである。
このオブジェクトの値には関数を用いることもできる。
この関数は定数名.プロパティ名();で呼び出せる。これはオブジェクトの呼び出し自体が定数名.プロパティ名で行えるので、あとは関数呼び出して使う形である();がくっつくだけである。よく使う形なので覚えること。
具体例は以下の通り。user.greet();で関数内の処理を呼び出せている。
オブジェクトの量産
実際のwebサービスでは大量のオブジェクトを扱っており、それをいちいち入力していくのは大変である。
そこで設計図(クラス)を作って、それを元にユーザーデータを生成する、というふうにすると楽に作れるようになる。
クラスはclass Class名 {}で作ることができる。基本的にクラス名の頭文字は大文字にすること。
そのクラスから実際にオブジェクトを作り出すには、new Class名();とすることで可能になる。これをインスタンス(実体、実像、実例。つまり設計図を元に作られた実物というニュアンス)と言い、画像の場合はAnimalインスタンスという。それとふと思ったのだが、関数でないのに();が出てきた。これは{}内の処理を呼び出す、という意味なのだろうか?
設計図の中身を設定する。
クラスの中身を設定する。それにあたってconstructor(建設者という意味)とその仕事(処理)内容を設定する。設定の仕方と言えばクラスの{}内にconstructor(){}を追記すればよい。
コンストラクタの処理
コンストラクタの処理はインスタンスが作成された直後に行われる。つまり、インスタンスを作るごとに毎回作成されるということ。
constructorにプロパティと値を追加する。
コンストラクタの中にプロパティと値を追加するには、this.プロパティ名 = 値
とすることで生成したインスタンスにプロパティと値を追加することができる。
ちなみにthisとはこのクラスのという意味である。
コンストラクタで設定したプロパティと値はその外でもインスタンス.プロパティ名とすることで呼び出すことができる。
インスタンスごとに値を変える。
先ほどまでのコードではインスタンス全てに同じ値として処理されてしまう。
そこでconstructor()の括弧内に引数名を入力することで、その引数をそのコンストラクタ内で処理できるようになる。
コンストラクタに引数として値を引き渡すには、new Class名()の括弧内に値を追加する。下の図では()内のレオと3が値として引数として渡され、name, ageとして使うことができる。あとはconsole.log(animal.name)とconsole.log(animal.age)
を書けばレオと3が出力される。
メソッドとは
メソッドとはインスタンスの動作のようなもの。
メソッドの使い方
メソッドはクラスの中で定義でき、「メソッド名() { }」とすることでメソッドが定義できる。メソッドは関数と似ており、関数のように中括弧「{ }」の中にそのメソッドで行いたい処理を記述する。()も忘れないように(書かずに演習で出力できなかった)
メソッドの呼び出し方も関数と似ており、インスタンス.メソッド名()で呼び出すことができる。
ところで、コンストラクターでも似ているところがあると気がついたが、constructorはclass = nes が書き込まれた瞬間に自動処理されるもの、ということである(正直まだよくわかっていないが以下参照https://wa3.i-3-i.info/word13646.html)。今後進めていく中で理解したい。
メソッド内でメソッドを使う
メソッド内で「this.メソッド名()」とすることで、同じクラス内の他のメソッドを使うことができる。下の画像で言えばinfo内にあるthis.greet();という文は、このクラスのgreetメソッドを実行する、というように処理することができる。
virtualbox上にcentosのインストール完了。 初めてLinuxを起動したが思ったよりモダンな感じだった(勝手ながらPCに詳しい人だけがつかう極めて簡素なOSと思っていた...)
明日からは実際に触るようになるので、しっかり覚えていきたい。