0

所以我一直在我的类文件的构造函数中搞乱字符串数据类型,虽然一切都正确编译,但当我运行应用程序文件时,程序没有给出预期的结果。我保持简短,看看它是否会起作用,所以我的类文件如下:

  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”。这都是为了练习,所以任何见解都会很棒。谢谢!

4

1 回答 1

3

传递给构造函数的参数应该被翻转。

在您的应用程序中:

Guitar1 = new StringPractice(brand, color);

但在您的代码中:

public StringPractice(String clor, String brnd) {
于 2014-03-27T04:26:35.993 回答