まず、関数の定義
主な解決策は、関数で繰り返すと独立した機能のコードセグメント
存在意義がモジュラー機能を動作します---
- これらのことは、独立したコードが再び機能である必要があります取得した機能パッケージです
- 明らかな利点は、メイン関数の符号量を低減するために従うことができる再利用コードの冗長機能を減少させることで、主な機能は、適切にメモリの最適化のために、分割します。
どのようにそれを定義するために機能しますか?
アクセスタイプの関数の戻り値の型関数名(パラメータリスト){
関数本体
戻り値を返します。
}
- アクセス:関数の使用(内部および外部)公共の保護デフォルトのプライベートを指し、
関数の2種類:分類のタイプの関数であります
スタティック(静的関数)デフォルト(メンバ関数)抽象(抽象関数)ネイティブ(ローカル関数)同期(同期機能)
3.関数名:コードのこのセクション名をカスタマイズするには、プログラマ(識別子)
4.パラメータのリスト:複数(パラメータタイプパラメータ名)、主機能外部に渡されるデータの一部を受信するために使用
関数の本体:独立した機能ブロックを有します
6.リターン:のみ、現在の機能の終了を示す戻り値が存在する場合、関数が呼び出し側に返される値の終わりの前に戻ります
7.戻り値:これは、リターンを使用して、個々の機能を有するコードブロックの計算を指す外の世界に渡す必要
8.戻り値型:データ型が戻り(互換)の値であります
次に、我々は、フォーマットの主な機能を分析します:
公共の主な機能は、最大の公的機関の権限であります
静的主な機能は、静的関数であります
この関数は、戻り値の空間を持っていません
主な機能主な名前を付け
文字列[]の文字列は、[]の文字列の配列(データ型)で表されます。
引数は、このデータ型変数名です
戻る:リターンが見つからない場合
リターンは無視することができますので、関数が値を返さない書き込みがまったく存在していることを意味しませんので、それはあります
リターン自体は、現在の関数の終わりを示します!
関数は値が戻り値を返す返された場合、書き込まれなければなりません
あなたが唯一の戻り値は、関数本体の関数の引数リストの戻り値の名前を入力考慮する必要が定義された関数
注意:関数の内部関数functionを作成しないでくださいその関数内でクラス間の同レベルの関係でなければなりません
C / C ++ / Python関数の定義では、関数呼び出しの前でなければなりません
制限しないJavaの前または後
例で見てみましょう:
class Test01{
public static void main(String[] args){
int a=4;
int b=4;
double c=pow(a,b);
System.out.println(c);
}
public static double pow(double a,int b){
if(b==0){
return 1;
}
double sum=1;
//2^4
for(int i=1;i<=Math.abs(b);i++){
sum*=a;
}
return b>0?sum:1/sum;
}
public static void show(){
System.out.println("哈哈~~");
}
}
第二に、分類機能
- 戻り値のパラメータがあります。
- 戻り値のパラメータはありません
- 戻り値のパラメータありません
- パラメータなしなし戻り値
注:値、参加操作を返す関数であり、出力の割り当て
関数の戻り値は、単なる呼び出しは、他の操作の結果を返す必要がないではないだろう
第三に、関数パラメータの受け渡し
- 実際のパラメータ - 引数 - >コール機能では、データが関数に渡されている(定数、変数)
- 仮パラメータ - パラメータ - >関数を定義、データ引数リストされ
それのパラメータに渡される引数は---何である定数プール内のアドレス定数
--- ヒープメモリ内のオブジェクトのアドレス
しかし、関数内で作成されたすべての変数は、ローカル変数と呼ばれます。のみ現在の関数内のローカル変数のスコープ
私はあなたに説明するための図を使用します。
第四に、関数スタック
Run関数は、スタックの運転に基づいています
スタック、スタックにデジタル123456順序のピースの容器構造の外に前進され、スタックは654321程度であります
各関数は、弾丸(関数フレーム)であると理解されてもよく、上部のフレームがスタックに第一の優先動作、メイン関数の機能を有しています
私たちは、コードの一部を見て次に
class Test01{
public static void main(String[] args){
int a=4;
int b=4;
double c=pow(a,b);
System.out.println(c);
}
public static double pow(double a,int b){
if(b==0){
return 1;
}
double sum=1;
for(int i=1;i<=Math.abs(b);i++){
sum*=a;
}
return b>0?sum:1/sum;
}
}
私はあなたのためにそれをデモするためにアニメーションを使用します。
あなたに有益なうまくいけば、この記事!!!