そのため、クラス ファイルのコンストラクターで String データ型をいじっていましたが、すべてが正しくコンパイルされているにもかかわらず、アプリケーション ファイルを実行すると、プログラムは目的の結果をもたらしません。動作するかどうかを確認するために短くしたので、クラス ファイルは次のようになります。
public class StringPractice
{
private String color;
private String brand;
public StringPractice() {
String color = "";
String brand = "";
}
public StringPractice(String clor, String brnd) {
setColor(clor);
setBrand(brnd);
}
public void setColor(String clor) {
if (clor.equalsIgnoreCase("Red")) {
color = clor;
}
else {
System.out.println("We dont't carry that color");
}
}
public void setBrand(String brnd) {
if (brnd.equalsIgnoreCase("Gibson")) {
brand = brnd;
}
else {
System.out.println("We do not carry that brand");
}
}
public String getColor() {
return color;
}
public String getBrand() {
return brand;
}
public void display() {
System.out.println("Our brands are: " + brand + "Our colors are: " + color);
}
私のアプリケーションファイルは次のとおりです。
import java.util.Scanner;
public class UseStringPractice
{
public static void main(String[] args)
{
String brand = "";
String color = "";
Scanner keyboard = new Scanner(System.in);
StringPractice Guitar1;
System.out.println("Please enter the brand you would like");
brand = keyboard.next();
System.out.println("Please enter the color you would like");
color = keyboard.next();
Guitar1 = new StringPractice(brand, color);
Guitar1.display();
}
}
私は間違って何をしていますか? スキャナからの情報を解析するために間違った方法を使用していませんか? または、equalsIgnoreCase を間違って使用していますか? これらのメソッドを実装するのはこれが初めての試みなので、私が知っている限りでは、うまくいかないかもしれません。アプリケーション クラスを実行すると、結果は末尾の else 句の結果、つまり「これらのブランドは取り扱っていません」または「その色は取り扱っていません」になります。次に、表示ステートメントで、変数名が「null」に置き換えられます。これはすべて練習用なので、どんな洞察も素晴らしいでしょう。ありがとう!