はのクラスCombinationLockを定義することから始めましょうです
import java.util.Scanner;
public class Driver
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter 3 digits for your code.");
int a = keyboard.nextInt();
int b = keyboard.nextInt();
int c = keyboard.nextInt();
CombinationLock cl = new CombinationLock(a,b,c);
System.out.println(cl.toString());
}
}
メインアプリケーションクラスである私の答え を試しください。
コンビネーションロックには、ロックを解除するために必要な3つの番号があります。これらは、ロックを構築するときに のいずれかを渡すか、ロックにハードコードすることができます。また、ロックを解除する方法も含まれています。実装は次のようになります。
public class CombinationLock {
int num1;
int num2;
int num3;
boolean locked = true;
public CombinationLock(int num1, int num2, int num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}
//creates a new combinationlock with default code 1-2-3
public CombinationLock(){
this(1,2,3);
}
public void unlock(int a, int b, int c){
if(a==num1 && b==num2 && c==num3){
locked = false;
}
}
public void lock(){
locked = true;
}
//toString method's are reserved to describe the object as a String.
@Override
public String toString(){
String result = "A combination lock with a secret code. ";
if(locked){
result += "It is currently locked";
} else {
result += "It is currently open";
}
return result;
}
}
このロックはどのように使用しますか?ユーザーに3つの数字を尋ね、ロックを解除しようとするもう1つの方法を追加しましょう。今度は、私たちのロックを試してmainメソッドを書いてみましょう
public void promptUser(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter 3 digits for your code.");
int a = keyboard.nextInt();
int b = keyboard.nextInt();
int c = keyboard.nextInt();
System.out.println();
System.out.println("Clockwise " + num1 + "- Counter-Clockwise " +
num2 + "- Clockwise " + num3);
unlock(a,b,c);
}
:
public static void main(String[] args) throws Exception {
CombinationLock lock = new CombinationLock(3,5,2);
System.out.println(lock);
lock.promptUser();
System.out.println(lock);
}
A combination lock with a secret code.
It is currently locked
Please enter 3 digits for your code.
3
5
2
You try turning Clockwise 3- Counter-Clockwise 5- Clockwise 2
A combination lock with a secret code.
It is currently open
私たちは 'toString'方法 – Ravi
ToString関数に入力useer受け入れているようなコードを見ていないが、通常は使用されませんユーザーから何かを尋ねたコンストラクタで3桁の数字を尋ねて、引数を使用しないでください。 –
コンストラクタで初期化される前にオブジェクトに対してメソッドを呼び出すことはできません。あなたがしようとしていることは不可能です。また、 'toString()'は、あなたがやったやり方で上書きしてはならないjavaオブジェクトの既存のメソッドです。 –