方法
Javaは関数やメソッドを区別しない、それが機能するためにあります
方法は何ですか?
サイクルが運転を繰り返している問題を解決するために、いくつかの状況下では、コードの一部は、繰り返しサイクルの多くを必要とし、この時点で要件を満たすことができない場合、コードをカプセル化することができ、カプセル化方式があります
この方法は、このコードは、様々な場所で繰り返した場合に書き込み、このコードを複数の場所で複数回使用されるように、コードセグメントのコールを繰り返して、それは確かにそう、多くの問題、および修正するためのコードのこの部分ならば、あまりにも面倒だろうこの時点で、このコードは、メソッド、繰り返し使用するためのプログラムとして定義することができます。
方法格式:
访问权限修饰符[其他修饰符] 返回值类型 方法名(参数列表){
方法体;
return;
}
法と法の間で定義されたメソッドは、同じレベルの関係である場合には
方法の詳細説明:
アクセス修飾子:
現在の方法は、(アクセス)誰によって呼び出すことができます提供していない
アクセス修飾子が4あります。公共一般的な最大の権限を、誰をアクセスすることができます
その他の修飾子:
括弧で囲まれた他の修飾子は、中に省略することができている
他の修飾四種類:静的静的クラスに属しています
戻り値型:
現在のメソッドの後に結果が関数を完了するために、できるもの
1、ノーリターンタイプ- >>得任意の結果返さないこのメソッドは無効と
2を、そこ戻り値型:値の種類(基本データ型)基準タイプ(アレイ、インターフェース、セット、フロー、等)
メソッド名:
動詞を利用するために命名規則特急のシンボルに準拠するメソッド名
大のこぶ:すべての文字が小さなこぶを大文字:最初の単語を小文字に、各単語の最初の文字の後には、例を大文字:はgetNumber ------- >>>こぶ命名法
パラメータ(パラメータリスト)のリスト:
パラメータは、パラメータに渡された外部得るために、方法に提供する
パラメータのリスト:パラメータ名のデータ・タイプを、データタイプパラメータ名
、パラメータリストは、変数を定義しています具体的な値でない限り、メソッドが呼び出されていないとして、この変数は任意のスペースを持っていません。
メソッドシグネチャ:
同じエラー署名がコンパイルされます表示された場合メソッド各メソッドのシグネチャは、ユニークな
メソッド名パラメータリストの構成を+
return关键字:
是在方法体内部使用,return关键字可以终止方法或者带回一个返回值
第一种使用方式无返回值类型:
此时方法中可以使用return也可以不写return,但是绝对不能在return后面添加
任何具体的值。
第二种使用方式有返回值类型:
此时方法必须使用return,必须带有一个当前返回值类型一致的值。
ps:正常来说方法中只有一个return,即执行一个return操作!
有多个return时,只能执行一个return,其他的用分支判断隔开
メソッドを呼び出す
メソッド本体内書き込みを、2つの方法での静的メソッドの呼び出し:
第一种: 方法名();
PS:現在のプロセスは、パラメータリストを有する場合、定数、変数または式を嫌いに対応するデータ、又は他の方法で渡される必要があり、受信データの種類と数は、データ・タイプおよびパラメータリストの番号と一致しなければなりません。
着信データの引数- >>>実際のパラメータ(特定値)
現在の方法は、値を返す場合、受け入れるオプションは、後続のコードの戻り値かどうかを確認するために特に必要を受け入れるしないことを選んでもよい//
第二种调用方式:通过类名.静态方法名(); 静态属于类,类可以调用静态方法
異なる2点:静的メソッドは他のクラスでは、クラス名の呼び出しを使用することはできません同じクラスの静的メソッドを嫌う現在のクラスにアクセスする必要がある、あなたはクラスメソッドPSの名前起動する必要があります。)MethodDemo.printNineNineを(; ..
方法のノーリターンタイプはならない許容できないPS:printNineNine();
要約:メソッド呼び出しが均一および不均一に分割され、戻り値と戻り値がない、
同様の呼び出しは直接書き込む*メソッド名(パラメータリストに対応)*コール
異なるクラス呼び出すメソッド名をここでクラス名メソッド名(対応。パラメータリスト)を呼び出すための
PSを:メソッドが値のSystem.out.println(メソッド名を()を返すかどうかを判断する方法)。
共通スタイル方法
public class MethodDemo2{
public static void main(String[] args){
}
}
//1.无参无返回值 --> 纯打印
public static void show1(){ }
//2.有参无返回值 --> 打印
public static void show2(int a){ } //3.有参有返回值 --> 计算
public static int show3(int a){ } //必须有return //4.无参有返回值--> 计算
public static int show(){ } // 必须有return
}
メソッドリングメモリ
要件:方法、および2つの数の合計を定義します
メソッドオーバーロード
の方法を学習し、それが指向の間接的な学習オブジェクトである- >パッケージ、また多型学習に
法多型---- >>>
方法の同じ機能、方法別の名前を定義する必要はありません、これが助長されていませんメモリ!方法の同じ機能の名前は、同じメソッド名で、パラメータは、過負荷異なる憎悪を達成することができます。ただ、着信データに応じて、メソッドの名前を覚えて、システムが自動的に最も適切な方法の憎しみを選択します
定義されたオーバーロード:
メソッドシグネチャパラメータリスト=名+方法
方法と同じであるメソッド名をオーバーロードが、唯一以下のいずれかを満たすことができるパラメータの異なるリスト、すなわちオーバーロードされた
異なるデータタイプパラメータは、異なる数2~3嫌い別の順序は
限り要件のメソッド名とパラメータリストができて、関係なく、他のすべての
利点:あなたが記録メソッド名の多くを行うことができ、あなたはメソッド名を呼び出すことができ、我々は、メソッドのパラメータを使用して動的なロジックを実装することを決定したことを憎みます
系统会通过程序员传入的参数来动态决定调用哪个方法,所以会出现一个重载的中的问题(避免出现下面的问题)
public class OverloadDemo2 {
public static void main(String[] args) {
//求和
byte num1 = 1;
byte num2 = 1;
//OverloadDemo2 中的方法 add(byte,short) //OverloadDemo2 中的方法 add(short,byte) 都匹配 //二义性
int sum = add(num1,num2); System.out.println(sum);
}
public static int add(byte num1 ,short num2){
return num1+num2;
}
public static int add(short num1,byte num2){
} }
再帰(主)
自身が自分自身を呼び出している再帰的な方法は、メモリ消費のための非常に深刻である
(それ自体が)自体は常に通話自体を嫌うれる暗黙のサイクルがある憎悪内部メソッド本体に相当し、再帰
、エンドポイントではありません再帰的にノーアウトレットこのJVMで、スタックオーバーフローエラーがスローされますStackOverflowErrorが