javaに詳しい人間なら何を言っているんだこいつは、と思うような一言である。そう思う人は早々に読み飛ばしても良い。しかしこれは重要である。果たして普段のコーディングにおいて、どの程度public変数を利用する必然性があるのか。例えばbaristaが現在行なっているプロジェクトにおいて、static finalではない変数は全てprivateだ。初心者はこの一行だけ読んで後は読まなくてもいい。
変数は全部privateにする事。
SUNのコードの中でpublicになっている変数を探して見ると、
System.out.println("test");
このoutが一番有名ではないだろうか。その他にはPointクラスのxやyなどもそうである。共通するのは、頻繁にアクセスする上でgetXXX()などといちいちやるのが面倒、と言うところだろうか。前者に関してはどうせstaticな物だから、と言う意味もある。
さて、果たしてこのようなクラスを設計する機会が初心者にあるだろうか?恐らく無い。強いていうなら、Pointクラスのような、複数のデータを手軽に扱う為のpackのような機能を持つ、データクラスなら作る可能性があるかもしれない。しかし、それですら通常はsetterとgetterを使うのが普通だ。3Dゲームを作るなど非常に速度にシビアなシステムを作るのでない限り、public変数で無いと実現できない物は存在しない。
さっきの太字以降の文章の意味があまり良くわからないなあ、と言う人は是非全ての変数をprivateにして頂きたい。どうしてもpublic変数を作るのならjavadocに「どんな理由でpublicにしたから、どういうところに気をつけてアクセスしなさい」と書く癖を付けていただきたい。上手く説明できなかったらすぐprivateに変更だ。
戻る
|