静的メソッド (static method)
JavaやPHPには静的メソッド(static method)という概念があります。Rubyではクラスメソッドに相当します。通常のメソッドはインスタンスに属しますが、静的メソッドはクラスに属します。JavaやPHPではstaticキーワードで静的フィールドを宣言できます。
Javajavaclass SomeClass {static public void doSomething() {// ...}}class Main {public static void main(String[] args) {SomeClass.doSomething();}}
Javajavaclass SomeClass {static public void doSomething() {// ...}}class Main {public static void main(String[] args) {SomeClass.doSomething();}}
PHPphpclass SomeClass{public static function doSomething(){// ...}}SomeClass::doSomething();
PHPphpclass SomeClass{public static function doSomething(){// ...}}SomeClass::doSomething();
JavaScriptにはJavaのような静的メソッドの機能がありません。代わりに、クラスのプロパティに後から関数を代入することで似たようなことができます。
JavaScriptjavascriptclass SomeClass {}SomeClass.doSomething = function () {// ...};SomeClass.doSomething();
JavaScriptjavascriptclass SomeClass {}SomeClass.doSomething = function () {// ...};SomeClass.doSomething();
TypeScriptでは、Java風の静的メソッドの書き方ができるようになっています。TypeScriptで静的メソッドを宣言するにはstaticキーワードを用います。
TypeScripttypescriptclass SomeClass {static doSomething() {// ...}}SomeClass.doSomething();
TypeScripttypescriptclass SomeClass {static doSomething() {// ...}}SomeClass.doSomething();
静的メソッドとアクセス修飾子#
TypeScriptの静的メソッドはアクセス修飾子を組み合わせられます。
typescriptclass SomeClass {private static doSomething() {// ...}}
typescriptclass SomeClass {private static doSomething() {// ...}}