017-002-001

継承と制御フロー:パスワード検証システム

初級

問題説明

継承と制御フロー:パスワード検証システム

この問題では: Validatorクラスを継承したStrictValidatorクラスを実装し、validateメソッドオーバーライドして異なる検証基準でパスワード長を判定し、結果を標準出力に表示するプログラムを作成します。

学習目標: 継承とメソッドオーバーライドで異なる検証ルールを実装する方法を理解する

基本的なパスワード検証クラスと、それを継承する厳格な検証クラスを作ります。同じvalidateメソッドでも、クラスによって異なる検証基準を適用することで、オブジェクト指向の柔軟性を学びましょう。

具体例で理解する

例1: 厳格基準で合格(12文字)

  • 入力: 12
  • 使用クラス: StrictValidator(10文字以上が基準)
  • 検証処理: 12 >= 10 → true
  • 判定結果: "Valid"
  • 出力: "Password Validation:" "Length: 12characters" "Result: Valid"

例2: 厳格基準で不合格(8文字)

  • 入力: 8
  • 使用クラス: StrictValidator(10文字以上が基準)
  • 検証処理: 8 >= 10 → false
  • 判定結果: "Invalid"(基本クラスなら合格だが、厳格クラスでは不合格)
  • 出力: "Password Validation:" "Length: 8characters" "Result: Invalid"

例3: 境界値(10文字ちょうど)

  • 入力: 10
  • 使用クラス: StrictValidator(10文字以上が基準)
  • 検証処理: 10 >= 10 → true(境界値を含む)
  • 判定結果: "Valid"
  • 出力: "Password Validation:" "Length: 10characters" "Result: Valid"

入力

1行目: パスワード長(整数、1-50)

出力

Password Validation:
Length: [長さ]characters
Result: [結果]

検証基準:

  • 基本クラス(Validator): 6文字以上で合格
  • 厳格クラス(StrictValidator): 10文字以上で合格(オーバーライド)

重要ポイント: 継承を使うことで、同じメソッド名異なる動作を実現できます。これを**ポリモーフィズム(多態性)**と呼びます。

テストケース例

※ 出力例はプログラミングの国際標準に準拠し英語で表示しています

正常系
入力:
12
期待される出力:
Password Validation:
Length: 12characters
Result: Valid
正常系
入力:
8
期待される出力:
Password Validation:
Length: 8characters
Result: Invalid

あなたの解答

現在のモード: 自分のコード
Validator.java🔒
StrictValidator.java🔒
Solution.java🔒
3/6 ファイル179B
public class Validator {
}
0 B / 5 MB

残り 10 回実行可能