メソッド定義の際に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メソッドの呼び出し方
クラス名 . メソッド名
コメント