staticメソッド【Java】

staticメソッド Java

メソッド定義の際にstaticという文字列をたまに見かけませんか?

皆さんがよく使うmainメソッドにもついていますよね?

そのようなstaticとついたメソッドをstaticメソッドと呼びます。(それ以外のメソッドはインスタンスメソッドと呼びます)

今回は、staticをつけると何が起きるのか解説していきます。

結論、staticをつけたメソッドは、インスタンス化しなくても呼び出すことができます

インスタンス化が何か分からない人は、以下の記事を参考にしてください。

クラスとインスタンスの違い
プログラミングにおけるクラスとインスタンスの違いを解説していきます。 簡単に言うと、クラスは設計図、インスタンスは設計図から作られた実物です。 クラス オブジェクト指向ではプログラムを「モノ」の単位で記述します。この「モノ」をオブジェクト指...

書き方

メソッドを定義する際に記述します。

書き方としては以下の通りです。

static 戻り値の型 メソッド名

staticをつけたメソッドは、インスタンス化することなく呼び出すことができます。

呼び出し方

呼び出し方は以下の通りです。

クラス名.メソッド名


実際にコードで書いてみます。

インスタンスメソッド

Printクラス

class Print{
 public void print(){
  System.out.println("インスタンスメソッドだよ");
 }

Testクラス

class Test{
 public static void main(String args[]){
  //インスタンス化
  Print pri = new Print();

  //「インスタンスメソッドだよ」を表示
  pri.print();


staticメソッド

Printクラス

class Print{
 public static void print(){
  System.out.println("staticメソッドだよ");
 }

Testクラス

class Test{
 public static void main(String args[]){
  //「staticメソッドだよ」を表示
  Print.print();

このように、本来ならPrintクラスをインスタンス化し、そのインスタンスからメソッドを呼び出す必要がありますが、staticを付ければその必要がなくなります。

代表的なstaticメソッド

よく使う代表的なstaticメソッドを少しご紹介します。

1.parseIntメソッド(Integerクラス)

//文字列を整数値に変換
Integer.parseInt("123");


2.parseDoubleメソッド(Doubleクラス)

//文字列を浮動小数点数に変換
Double.parseDouble("123.45");


3. out.printlnメソッド(Systemクラス)

//データの表示
System.out.println("あいうえお");

これらのメソッドは、わざわざインスタンス化することなく使用してますよね?

それは、定義の際にstaticで定義されているからなのです。

【参考】mainメソッドがstaticな理由

mainメソッドは特別なメソッドで、必ずプログラムの最初に呼び出されます

mainメソッドが呼び出される際には、まだどこにもインスタンス化されていません。

mainメソッドを含んでいるクラスがインスタンス化されていなくても、実行される必要があるため、mainメソッドにはstaticをつける必要があるのです。

まとめ

staticメソッドとは?
 インスタンス化しなくても呼び出すことができるメソッド

staticメソッドの書き方
 static 戻り値の型 メソッド名

staticメソッドの呼び出し方
 クラス名 . メソッド名

コメント

タイトルとURLをコピーしました