【Java】メソッドの呼び出し方法と使い方を解説!静的と非静的メソッドについても解説
ここでは、Javaのメソッドの呼び出し方について書いてます。メソッドを使うことによって毎回同じ処理を書かなくてもよくなり、ソースコードが見やすくなりバグも減っていきます。はじめのうちはわかりにくいと思いますが、このメソッドを習得するとプログラマーになる為の第一関門【オブジェクト指向】をクリアできます。
難しく考えず、ただ同じ処理や計算を毎回書くのが面倒な為メソッドを作成していると考えましょう!
Java クラスメソッド
Javaのメソッドはクラス内で宣言され、特定のアクションを実行するために使用されるます。
例
myMethod()FlyTechで名前が付けられたメソッドを作成します。
1 2 3 4 5 |
public class FlyTech { static void myMethod() { System.out.println("Hello World!"); } } |
myMethod()が呼び出された時にテキスト(Hello World!)を出力します 。メソッドを呼び出すには、メソッド名に続けて()と;を記載します。
例
1 2 3 4 5 6 7 8 9 10 |
public class FlyTech { static void myMethod() { System.out.println("Hello World!"); } public static void main(String[] args) { myMethod(); } } // "Hello World!"と出力 |
出力結果
Hello World!
静的と非静的メソッド
Javaのプログラムで、static属性とpublic属性のメソッドをよく見かけると思います。
上記の例では、static メソッドを作成しました。static メソッドは、publicオブジェクトのみがアクセスできるとは異なり、クラスのオブジェクトを作成せずにアクセスできます。
例
staticとpublic メソッドの違いを示す例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public class FlyTech { // Static method static void staticMethod() { System.out.println("オブジェクトを作成せずに静的メソッドを呼び出し"); } // Public method public void publicMethod() { System.out.println("オブジェクトを作成してパブリックメソッドを呼び出し"); } // Main method public static void main(String[] args) { staticMethod(); // static(静的メソッド)の呼び出し // publicMethod(); これはコンパイルエラーを起こします FlyTech myObj = new FlyTech(); // FlyTechクラスのインスタンス化 myObj.publicMethod(); // public(非静的メソッド)の呼び出し } } |
出力結果
オブジェクトを作成せずに静的メソッドを呼び出し
オブジェクトを作成してパブリックメソッドを呼び出し
インスタンス化してメソッドへアクセス
myCarという変数でCarクラスをインスタンス化します。インスタンス化したCarクラスのfullThrottleメソッドとspeedメソッドを呼び出し、プログラムを実行します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Carクラスの作成 public class Car { // Create a fullThrottle() method public void fullThrottle() { System.out.println("車をできる限り速く飛ばしてます!"); } // speed()メソッドを作成してパラメーターを追加 public void speed(int maxSpeed) { System.out.println("最高時速は: " + maxSpeed); } // main内で、myCarオブジェクトのメソッドを呼び出します public static void main(String[] args) { Car myCar = new Car(); // myCar オブジェクト作成(Carクラスのインスタンス化) myCar.fullThrottle(); // fullThrottle() メソッドの呼び出し myCar.speed(200); // speed() メソッドの呼び出し } } // 車をできる限り速く飛ばしてます!" // 最高時速は: 200 |
出力結果
車をできる限り速く飛ばしてます!
最高時速は: 200
例の説明
1)キーワードを使用してカスタムCarクラスを作成。
2)クラス 内にfullThrottle()および speed()メソッドを作成。
3)fullThrottle()メソッドと speed() メソッドは、呼び出されたときにテキストを出力。
4)speed() メソッドはint型の引数をパラメーターとして受け取ります。 maxSpeedは 8)で使用します。
5)Carクラスを使用するためには、クラスとそのメソッドを、インスタンス化する必要があります。
6)次に、main()メソッドを作成します。これで、main内のすべてのコードが実行されます。
7)newを使用してCarクラスのインスタンス化し、myCarという名前のオブジェクト を作成。
8)次に、オブジェクトのfullThrottle()および speed() メソッドを呼び出し、fullThrottle();、speed(200);の順にプログラムを実行します。speed()メソッド内intに200のパラメーターを追加していることに注意してください 。
覚えて
ドット(.)は、オブジェクトの属性とメソッドにアクセスするために使用されます。
Javaでメソッドを呼び出すには、メソッド名に続けてかっこ()の後にセミコロン(;)を続けます。
クラスには、一致するファイル名(Carおよび Car.java)が必要です。
他クラスのメソッドの使用方法
インスタンス化してメソッドにアクセスする時は、別のクラスを作成して使うことをお勧めします。
また、Javaファイルの名前はクラス名と一致させる必要がありますので注意してください。
下記の例では、同ディレクトリ(同じ階層)に2つのファイルを作成しています。
例
Car.java
1 2 3 4 5 6 7 8 9 |
public class Car { public void fullThrottle() { System.out.println("車をできる限り速く飛ばしてます!"); } public void speed(int maxSpeed) { System.out.println("最高時速は: " + maxSpeed); } } |
OtherClass.java
1 2 3 4 5 6 7 |
class OtherClass { public static void main(String[] args) { Car myCar = new Car(); // myCar オブジェクト作成(Carクラスのインスタンス化) myCar.fullThrottle(); // fullThrottle() メソッドの呼び出し myCar.speed(200); // speed() メソッドの呼び出し } } |
出力結果
車をできる限り速く飛ばしてます!
最高時速は: 200
Ryotin
現役フリーランスエンジニアです。使ってるエージェントはフライテック!得意言語はJava。月収は75万円。SESのフリーランスではこれ以上稼ぐのは厳しそう...とはいってもサラリーマンの時より倍の収入だから家族も喜んでるけどね!