Scala Tutorialsを読む 29 Classes

29 Classes

クラスの話は長いので、11日だけどあるていど書いてしまいます。30で終わりなのでもう少しです!

29 クラス

http://scalatutorials.com/tour/interactive_tour_of_scala_classes.html

  • classes can be defined with minimal amount of code
  • クラスは最小限のコードで定義出来ます。

  • the class body, is also the default constructor's implementation

  • さらにクラス本体はデフォルトのコンストラクタの実装を含んでいます。

  • automatic getters are generated for the class parameters defined using val e.g.

  • 自動的にゲッターは生成されパラメータはvalを使って定義されます。
class Person(val name:String) //generates a private `name` variable, and a getter with the same name   
  • automatic getters and setters are generated for class parameters defined using var e.g.
  • varを使っているクラスパラメータは自動的にゲッターとセッターが生成されます。
class Person(var name:String) //generates a private name variable, a getter and a setter with the same name 
  • Important Note: the private variable with the same name as the automatic getter and setter exists only in byte code.
  • 重要なメモ: 自動生成されたゲッターとセッターと同じ名前のプライベート変数がバイトコードにのみ存在する。
  • It's not possible to recreate it using explicit scala getters and setters (having a method and a variable of the same name violates the uniform access principle, and scala's scoping rules).
  • 明示的にscalaのゲッターとセッターを再生成することは出来ません。(同じ名前のメソッドや変数を持つことは均一なアクセスの原則に違反して、Scalaのスコープ規則)

  • To create explicit getters and setters - the private variable must have a different name, some like to add an _ before it to designate it is private and local and avoid naming conflicts with public methods

  • 明示的なゲッターとセッターの生成するには - プライベート変数は別の名前を持っている必要があり、いくつかは、それがプライベートでローカルで指定し、パブリック·メソッドで名前の競合を避けるために前に_を追加したい
  • everything is public by default unless explicitly declared otherwise
  • 明示的に宣言されない限り、すべてのものは、デフォルトではpublicです