【Salesforce 認定Platformデベロッパー】試験対策:第43問

問題

開発者には次のコードブロックがあります。

public class PaymentTax {
    public static decimal SalesTax = 0.0875;
}

trigger OpportunityLineItemTrigger on OpportunityLineItem (before insert, before update) {
    PaymentTax PayTax = new PaymentTax();
    decimal ProductTax = ProductCost * XXXXXXXXXXX;
}

productTaxを計算するために、開発者はどのコードセグメントをXXXXXXXXXXXに挿入して、トリガー内でクラス変数SalesTaxの値にアクセスできるようにしますか。

  • SalesTax
  • PayTax.SalesTax
  • PaymentTax.SalesTax
  • OpportunityLineItemTrigger.SalesTax

正解

  • SalesTax
  • PayTax.SalesTax
  • PaymentTax.SalesTax
  • OpportunityLineItemTrigger.SalesTax

解説

この問題のポイントは、静的変数へのアクセス方法を理解しているかどうかという点になります。

静的変数へのアクセス方法:

静的変数は、そのクラスのどのインスタンスにも属さない変数で、特定のクラス全体で共有される値を持ちます。

静的変数の定義例:

public class PaymentTax {
    public static decimal SalesTax = 0.0875;
}

静的変数へのアクセス:
静的変数へは、そのクラスの名前を使用して直接アクセスします。オブジェクトのインスタンスを作成せずともアクセスできるのが特徴です。

decimal taxRate = PaymentTax.SalesTax;

理由:
静的変数はクラスレベルで共有されるため、特定のインスタンスに依存しない情報や設定を格納するのに適しています。この性質により、静的変数にアクセスする場合、特定のインスタンスを作成することなく、クラス名を使用して直接アクセスします。

それぞれの選択肢の理由について説明します。

□ SalesTax
これは不正解です。このコードセグメントは、トリガー内のローカル変数またはメンバ変数を参照することを試みますが、SalesTaxPaymentTaxクラス内の静的変数です。トリガーのスコープ内にはこの名前の変数が存在しないため、この方法でアクセスすることはできません。

□ PayTax.SalesTax
これは不正解です。SalesTaxPaymentTaxクラス内の静的変数です。静的変数は、特定のインスタンスに依存せずクラス自体に関連付けられているため、インスタンスを使用してアクセスすることはできません。

□ PaymentTax.SalesTax
これは正解です。SalesTaxPaymentTaxクラスの静的変数であるため、クラス名を使用してアクセスすることができます。この方法で、静的変数の値に正しくアクセスできます。

□ OpportunityLineItemTrigger.SalesTax
これは不正解です。OpportunityLineItemTriggerトリガー内にSalesTax変数は定義されていません。そのため、この方法でアクセスすることはできません。

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

コメント

コメントする

目次