読者です 読者をやめる 読者になる 読者になる

kkana's blog

新米コーダーの忘れそうなことメモ

static関数のことで教えてもらったことのメモ

あたらしく覚えた! プログラミングのこと

static関数って何ですか と周りの人たちに聞きまくっていたら色々おしえてくれました。
今は正直わからないこともあるけれど
いつか見返してこれのことだったんだ・・・と気づくかもしれないのでメモ。


  • 参考になりそうなリンク
  • static関数を使うと、インスタンスをわざわざ作らなくていいのでメモリ節約になる
  • 外から見えないようにしたい機能はプライベートにする(その逆がstatic)
  • (staticの関数とprivateの関数は同じ名前でもいいの?に対して)(javaの場合は)同じ名前をつけるときは引数によって通る関数が変わる。
    自販機のお金投入口のようなもの(お金の処理は同じでも、スイカやコインや紙幣の形が引数としてくるときがある)これをオーバーロードと言う(?)

  • static関数を実行するときと、インスタンスを作ってそのプロパティを実行するときとだと一番の違いはメモリをどこに確保するかであると思われる(???)ので、static関数のことを静的関数っていうのはしっくりくる(???)

  • プライベートとパブリックとスタティクがわかるようになると人生変わる。javascriptしかやってないとたぶんわからないと思う。
  • 割と世の中すべてのものはオブジェクト指向で語ることができる

追記

  • staticには関数だけでなくて変数もある。
  • static関数のことをクラスメソッド、static変数のことをクラスプロパティ
  • インスタンスを作って使う関数やプロパティのことはインスタンスメソッドインスタンスプロパティ(と呼んでいた、解りやすい)
  • staticの反対はプライベートではない!プライベート(とパブリック)とスタティクはまた別の話。
  • staticメソッドやプロパティにもプライベートやパブリックというものを設定できる(?)
  • staticは同じものを参照する。同じクラスからインスタンスを2つ作ったとしてもstatic の変数は同じものを参照している

だそうです、みなさんありがとうございました。

それにしても他の言語書いてる人たちからjavascript嫌われてて悲しい。