Ch06: Methods: A DEEEP DARK⭐️ LooK


static Methods, Fields and Class Math


スタティツクメソッド

  • staticメソッドはインスタンス変数にアクセスできません.クラス変数はアクセス可能です.
  • staticメソッドは、一般にユーティリティメソッドの作成に使用されます
  • Mathクラスメソッド

  • クラスMath数学計算を実行するstaticメソッドを提供します.
  • Mathクラス静的定数PIとE

  • アクセス指定子は、publicfinalおよびstaticである.
  • // abs(x) : x의 절대값.
    abs(23.7) == 23.7
    abs(0.0) == 0.0
    abs(-23.7) == 23.7
    
    // ceil(x) : x보다 큰, 가장 작은 정수.
    ceil(9.2) == 10.0
    ceil(-9.8) == -9.0
    
    // floor(x) : x보다 작거나 같은, 가장 큰 정수.
    floor(9.2) == 9.0
    floor(-9.8) ==  
    
    // 이 밖에도 cos, exp, log, max, min, pow, sin, sqrt, tan이 있다.

    クラス内のフィールド

  • static変数およびインスタンス変数.
  • せいてきへんすう

  • クラス内のすべてのオブジェクトは、staticフィールドを共有します.
  • インスタンス変数

  • クラスの各オブジェクトには、メモリに独立したインスタンス変数があります.
  • Declaring Methods with Multiple Parameters

  • メソッドは1つの値しか返されません.ただし、戻り値は、異なる値を持つインスタンス変数のクラスに対する参照値である可能性があります.
  • クラス内の1つ以上のメソッドを使用する必要がある場合、またはメソッド間の呼び出し間でプログラムが値を格納する必要がある場合、変数をフィールドに宣言する必要があります.
  • Notes on Declaring and Using Methods


    非静的メソッド

  • 同じクラスのメソッドを直接呼び出すことができます.
  • 同じクラスの任意のフィールドを直接操作できます.
  • スタティツクメソッド

  • 同じクラスの他のstaticメソッドのみを直接呼び出すことができます
  • 同じクラスstaticフィールドのみが直接操作できます.
  • クラスのnon-staticメンバーにアクセスするには、そのクラスオブジェクトの参照を使用する必要があります.

  • Method-Call Stack and Activation Records


    プログラム-実行スタック(メソッド-呼び出しスタック)

  • メソッド呼び出しの連続.main() → mA() → mB()

  • スタックフレーム

  • 各スタックフレームには、呼び出しメソッドを返すためのアドレスと領域変数がある.
  • Secure Random-Number Generation


    乱数ジェネレータ

  • class Random
  • java.utilパッケージに存在
  • これは決定論の難題です.
  • 予測可能
  • class SecureRandom
  • java.secureパッケージに存在
  • これは非決定論の数字です.
  • 予測不可
  • Math.random|生成
  • 0.0double型整数|.
  • secureRandom randomNumbers = new SecureRandom();
    int randomValue = randomNumbers.nextInt(3); // range 0 ~ 2

    A Game of Chance; Introducing enum Types


    enum

  • 相互に関連する定数の集合.
  • enum型変数はenumで宣言された定数のみに割り当てられます.
  • Javaでは、enum形状定数とint形状定数を比較することはできません.
  • Scope of Declarations


    デフォルト範囲規則

  • パラメータ範囲はメソッドの主体です.
  • 領域変数の範囲は、宣言された場所からブロックの最後までです.
  • forゲートヘッダの初期化領域で宣言される領域変数の範囲は、forゲートの本体およびヘッダ内の他の表現である.
  • メソッドおよびフィールドの範囲は、クラス全体のボディです.
  • どのブロックにも領域変数があります.
  • メソッド内の領域変数およびパラメータがクラス内のフィールドと同じ名前である場合、ブロックが実行を終了するまでフィールドは「マスク」されます.これをshadowingといいます.
  • Method Overloading

  • 同じクラスに同じ名前のメソッドが存在することを確認します.
  • その他のパラメータセットが必要です
  • 同じまたは似たようなことをしますが、パラメータのデータ型では同時に使用されません.
  • コンパイラはメソッドをシンボルに区別します.
  • メソッド名
  • パラメータ数、データ型、順序
  • 戻りタイプを区別できません