logo

Javaのメソッド

一般に、 方法 何らかのタスクを実行する方法です。同様に、 Javaのメソッド 特定のタスクを実行する命令の集合です。コードの再利用性が提供されます。を使用してコードを簡単に変更することもできます メソッド 。このセクションでは、次のことを学びます Java のメソッドとは何か、メソッドの種類、メソッド宣言、 そして Javaでメソッドを呼び出す方法

Javaのメソッドとは何ですか?

方法 コードのブロック、ステートメントのコレクション、または特定のタスクまたは操作を実行するためにグループ化されたコードのセットです。を達成するために使用されます。 再利用性 コードの。メソッドを一度作成すると、それを何度も使用します。コードを何度も記述する必要はありません。また、 簡単な変更 そして 可読性 コードのチャンクを追加または削除するだけで、コードのチャンクを削除できます。メソッドは、呼び出したときのみ実行されます。

Java で最も重要なメソッドは次のとおりです。 主要() 方法。 main() メソッドについて詳しく知りたい場合は、リンクを参照してください。 https://www.javatpoint.com/java-main-method

メソッド宣言

メソッド宣言は、可視性、戻り値の型、名前、引数などのメソッド属性に関する情報を提供します。として知られる 6 つのコンポーネントがあります。 メソッドヘッダー 、次の図に示すように。

Javaのメソッド

メソッドの署名: すべてのメソッドにはメソッド シグネチャがあります。これはメソッド宣言の一部です。それには、 メソッド名 そして パラメータリスト

アクセス指定子: アクセス指定子または修飾子は、メソッドのアクセス タイプです。メソッドの可視性を指定します。 Javaが提供する アクセス指定子の種類:

    公共:アプリケーションで public 指定子を使用すると、すべてのクラスからこのメソッドにアクセスできます。プライベート:プライベート アクセス指定子を使用すると、メソッドは、それが定義されているクラス内でのみアクセス可能になります。保護中:protected アクセス指定子を使用すると、同じパッケージ内または別のパッケージ内のサブクラス内でメソッドにアクセスできます。デフォルト:メソッド宣言でアクセス指定子を使用しない場合、Java はデフォルトでデフォルトのアクセス指定子を使用します。同じパッケージからのみのみ表示されます。

戻り値の型: 戻り値の型は、メソッドが返すデータ型です。プリミティブ データ型、オブジェクト、コレクション、void などを持つ場合があります。メソッドが何も返さない場合は、void キーワードを使用します。

.java に等しい

メソッド名: これは、メソッドの名前を定義するために使用される一意の名前です。これはメソッドの機能に対応している必要があります。 2 つの数値を減算するメソッドを作成する場合、メソッド名は次のようにする必要があるとします。 減算()。 メソッドはその名前によって呼び出されます。

パラメータリスト: これは、カンマで区切られ、かっこで囲まれたパラメーターのリストです。データ型と変数名が含まれます。メソッドにパラメータがない場合は、括弧を空白のままにしておきます。

メソッド本体: これはメソッド宣言の一部です。実行するすべてのアクションが含まれています。これは一対の中括弧で囲まれています。

メソッドに名前を付ける

メソッドを定義するときは、メソッド名が 動詞 そして、から始めます 小文字 手紙。メソッド名に 3 語以上の単語が含まれる場合、最初の名前は動詞で、その後に形容詞または名詞が続く必要があります。複数の単語からなるメソッド名では、各単語の最初の文字が 大文字 最初の単語を除いて。例えば:

単一単語のメソッド名: sum()、area()

複数単語のメソッド名: areaOfCircle()、stringComparision()

メソッドが同じクラス内の別のメソッド名と同じ名前を持つこともあります。これは、次のように呼ばれます。 メソッドのオーバーロード

メソッドの種類

Java には 2 種類のメソッドがあります。

  • 事前定義されたメソッド
  • ユーザー定義のメソッド

事前定義されたメソッド

Java では、事前定義メソッドは、Java クラス ライブラリですでに定義されているメソッドであり、事前定義メソッドと呼ばれます。としても知られています 標準ライブラリメソッド または 組み込みメソッド 。これらのメソッドは、プログラム内でいつでも呼び出すだけで直接使用できます。いくつかの事前定義されたメソッドは、 length()、equals()、compareTo()、sqrt()、 プログラム内で事前定義されたメソッドのいずれかを呼び出すと、対応するメソッドに関連する一連のコードがライブラリに既に保存されているバックグラウンドで実行されます。

事前定義されたメソッドはすべてクラス内で定義されます。のような プリント() メソッドはで定義されています java.io.PrintStream クラス。メソッド内に記述したステートメントを出力します。例えば、 print('Java') を実行すると、コンソールに Java が表示されます。

事前定義されたメソッドの例を見てみましょう。

デモ.java

 public class Demo { public static void main(String[] args) { // using the max() method of Math class System.out.print('The maximum number is: ' + Math.max(9,7)); } } 

出力:

 The maximum number is: 9 

上の例では、3 つの事前定義されたメソッドを使用しました。 main()、print()、 そして 最大() 。これらのメソッドは事前に定義されているため、宣言せずに直接使用しました。 print() メソッドは次のメソッドです。 プリントストリーム 結果をコンソールに出力するクラス。 max() メソッドは、 数学 2 つの数値のうち大きい方を返すクラス。

リンクを使用して、事前定義されたメソッドのメソッド シグネチャを確認することもできます。 https://docs.oracle.com/ 。リンクをたどって max() メソッドのシグネチャを確認すると、次のことがわかります。

Javaのメソッド

上記のメソッド シグネチャでは、メソッド シグネチャにアクセス指定子があることがわかります。 公共 、非アクセス修飾子 静的 、戻り値の型 整数 、メソッド名 最大()、 パラメータリスト (int a、int b)。 上の例では、メソッドを定義する代わりに、メソッドを呼び出しただけです。これは、事前定義されたメソッドの利点です。これにより、プログラミングの複雑さが軽減されます。

同様に、print() メソッドのメソッド シグネチャも確認できます。

ユーザー定義のメソッド

ユーザーまたはプログラマによって作成されたメソッドは、次のように呼ばれます。 ユーザー定義の 方法。これらのメソッドは要件に応じて変更されます。

ユーザー定義メソッドを作成する方法

数値が偶数か奇数かをチェックするユーザー定義メソッドを作成しましょう。まずメソッドを定義します。

 //user defined method public static void findEvenOdd(int num) { //method body if(num%2==0) System.out.println(num+' is even'); else System.out.println(num+' is odd'); } 

上記の findevenodd() という名前のメソッドを定義しました。パラメータがある 1つで int 型。このメソッドは値を返さないため、void を使用しています。メソッド本体には、数値が偶数か奇数かを確認するステップが含まれています。数値が偶数の場合、数値を出力します 均等です 、それ以外の場合は数値を出力します 奇妙です

ユーザー定義メソッドを呼び出す方法

メソッドを定義したら、それを呼び出す必要があります。プログラム内でのメソッドの呼び出しは簡単です。ユーザー定義メソッドを呼び出すか呼び出すと、プログラム制御は呼び出されたメソッドに転送されます。

 import java.util.Scanner; public class EvenOdd { public static void main (String args[]) { //creating Scanner class object Scanner scan=new Scanner(System.in); System.out.print('Enter the number: '); //reading value from the user int num=scan.nextInt(); //method calling findEvenOdd(num); } 

上記のコード スニペットでは、コンパイラーが次の行に到達するとすぐに、 findEvenOdd(数値)、 制御はメソッドに転送され、それに応じて出力が返されます。

両方のコード スニペットを 1 つのプログラムに結合して実行してみましょう。

EvenOdd.java

C#スイッチ
 import java.util.Scanner; public class EvenOdd { public static void main (String args[]) { //creating Scanner class object Scanner scan=new Scanner(System.in); System.out.print('Enter the number: '); //reading value from user int num=scan.nextInt(); //method calling findEvenOdd(num); } //user defined method public static void findEvenOdd(int num) { //method body if(num%2==0) System.out.println(num+' is even'); else System.out.println(num+' is odd'); } } 

出力 1:

 Enter the number: 12 12 is even 

成果 2:

 Enter the number: 99 99 is odd 

呼び出したメソッドに値を返す別のプログラムを見てみましょう。

次のプログラムでは、という名前のメソッドを定義しました。 追加() 2 つの数値を合計したものです。整数型の 2 つのパラメータ n1 と n2 があります。 n1 と n2 の値は、それぞれ a と b の値に対応します。したがって、このメソッドは a と b の値を加算して変数 s に格納し、その合計を返します。

追加.java

 public class Addition { public static void main(String[] args) { int a = 19; int b = 5; //method calling int c = add(a, b); //a and b are actual parameters System.out.println('The sum of a and b is= ' + c); } //user defined method public static int add(int n1, int n2) //n1 and n2 are formal parameters { int s; s=n1+n2; return s; //returning the sum } } 

出力:

 The sum of a and b is= 24 

静的メソッド

static キーワードを持つメソッドは static メソッドと呼ばれます。つまり、クラスのインスタンスではなくクラスに属するメソッドは、静的メソッドと呼ばれます。キーワードを使用して静的メソッドを作成することもできます。 静的 メソッド名の前に。

静的メソッドの主な利点は、オブジェクトを作成せずにメソッドを呼び出せることです。静的データ メンバーにアクセスし、その値を変更することもできます。インスタンスメソッドの作成に使用されます。クラス名を使用して呼び出されます。静的メソッドの最良の例は次のとおりです。 主要() 方法。

静的メソッドの例

表示.java

 public class Display { public static void main(String[] args) { show(); } static void show() { System.out.println('It is an example of static method.'); } } 

出力:

文字列を比較するJava
 It is an example of a static method. 

インスタンスメソッド

クラスのメソッドは、 インスタンスメソッド 。それは 非静的 クラスで定義されたメソッド。インスタンス メソッドを呼び出す前に、そのクラスのオブジェクトを作成する必要があります。インスタンスメソッドの例を見てみましょう。

インスタンスメソッドの例.java

 public class InstanceMethodExample { public static void main(String [] args) { //Creating an object of the class InstanceMethodExample obj = new InstanceMethodExample(); //invoking instance method System.out.println('The sum is: '+obj.add(12, 13)); } int s; //user-defined method because we have not used static keyword public int add(int a, int b) { s = a+b; //returning the sum return s; } } 

出力:

 The sum is: 25 

インスタンス メソッドには次の 2 種類があります。

    アクセサメソッド ミューテーターメソッド

アクセサメソッド: インスタンス変数を読み取るメソッドは、アクセサー メソッドと呼ばれます。メソッドの先頭に という単語が付いているため、簡単に識別できます。 得る 。としても知られています ゲッター 。プライベートフィールドの値を返します。プライベートフィールドの値を取得するために使用されます。

 public int getId() { return Id; } 

ミューテーターの方法: メソッドはインスタンス変数を読み取り、値を変更します。メソッドの先頭に という単語が付いているため、簡単に識別できます。 セット 。としても知られています セッター または 修飾子 。何も返されません。フィールドに依存する同じデータ型のパラメータを受け入れます。プライベートフィールドの値を設定するために使用されます。

 public void setRoll(int roll) { this.roll = roll; } 

アクセサおよびミューテーターメソッドの例

Student.java

 public class Student { private int roll; private String name; public int getRoll() //accessor method { return roll; } public void setRoll(int roll) //mutator method { this.roll = roll; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void display() { System.out.println('Roll no.: '+roll); System.out.println('Student name: '+name); } } 

抽象メソッド

メソッド本体を持たないメソッドを抽象メソッドと呼びます。言い換えれば、実装のないメソッドは抽象メソッドとして知られています。常に宣言します 抽象クラス 。これは、抽象メソッドを持つ場合、クラス自体が抽象でなければならないことを意味します。抽象メソッドを作成するには、キーワードを使用します。 抽象的な

構文

 abstract void method_name(); 

抽象メソッドの例

デモ.java

 abstract class Demo //abstract class { //abstract method declaration abstract void display(); } public class MyClass extends Demo { //method impelmentation void display() { System.out.println('Abstract method?'); } public static void main(String args[]) { //creating object of abstract class Demo obj = new MyClass(); //invoking abstract method obj.display(); } } 

出力:

 Abstract method... 

ファクトリーメソッド

オブジェクトをそのオブジェクトが属するクラスに返すメソッドです。すべての静的メソッドはファクトリ メソッドです。例えば、 NumberFormat obj = NumberFormat.getNumberInstance();