メソッドという言葉をよく見かけます。ぼんやりとしたイメージしかありませんでしたが、あらためてお勉強したので、今回は、メソッドの基本についてメモします。さっそくですが、基本形となるこちらのプログラムからスタートです。
class SampleForMethod {
public static void main(String[] args) {
System.out.println("これはメインメソッドです。");
}
}
このプログラムを各要素の名前で表現すると、こんな感じになります。
クラス名 {
メソッド名() {
メソッドの機能をここに記述;
}
}
mainというメソッドは、プログラムを実行すると最初に呼び出される特別なメソッドで、SampleForMethodクラスを実行すると、mainメソッドの機能「System.out.println(“これはメインメソッドです。")」が自動的に呼び出されることになります。
というわけで、最初のプログラムを実行すると、コマンドプロンプトに下記メッセージが表示されます。
これはメインメソッドです。
オリジナルのメソッドを追加
mainメソッドは、最初に実行される機能ですが、それ以外にも自分で作ったメソッドを実行することもできます。例として、下記のように mymethodというメソッドを追加してみました。
class SampleForMethod {
public static void main(String[] args) {
System.out.println("これはメインメソッドです。");
}
mymethod() {
System.out.println("これは私が作ったメソッドです。");
}
}
このままコンパイルすると、「エラー:向こうなメソッド宣言です。戻り値の型が必要です。」というエラーが「mymethod()」に対して出力されます。戻り値は無い(void)ので、mymethodの型として voidを指定します。
class SampleForMethod {
public static void main(String[] args) {
System.out.println("これはメインメソッドです。");
}
void mymethod() {
System.out.println("これは私が作ったメソッドです。");
}
}
コンパイルが通ったので、実行してみると、実行結果は以下のとおりで、mymethodメソッドは実行されていません。
これはメインメソッドです。
オリジナルのメソッドを呼び出す
mainメソッドは、自動で呼び出されますが、それ以外のメソッドは呼んであげる必要があります。そこで、次のように記述します。
class SampleForMethod {
public static void main(String[] args) {
System.out.println("これはメインメソッドです。");
mymethod();
}
void mymethod() {
System.out.println("これは私が作ったメソッドです。");
}
}
これでコンパイルすると、今度は「エラー: staticでないメソッド mymethod()をstaticコンテキストから参照することはできません」というエラーが「mymethod()」に対して出力されます。というわけで、今度は、下記のように staticを追加します。
class SampleForMethod {
public static void main(String[] args) {
System.out.println("これはメインメソッドです。");
mymethod();
}
static void mymethod() {
System.out.println("これは私が作ったメソッドです。");
}
}
これでようやくコンパイルも通って、プログラムを実行すると、コマンドプロンプトに下記メッセージが表示されました。
これはメインメソッドです。
これは私が作ったメソッドです。
途中「staticコンテキスト」という見たことがある気がするけど意味が分からない単語も出てきましたが、ひとまず今日はこのへんで。
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)