繁体   English   中英

接受Java中的方法参数

[英]Accepting method parameters in Java

我的问题使我感到困惑,因为我之前已经做过,并且在以前的程序中也可以使用,但是该特定程序无法使用。 我只需要将typeInput和PopularNumber与传递给它们的2个变量一起使用,但是我不能在没有错误的情况下在主方法中调用它们。 “)”或“;” 预期会发生,在我看来,好像需要括号和半冒号。 我敢肯定这是一个快速修复,非常感谢学习如何修复它。 谢谢!

 public static void main(String[] args) {
        // TODO code application logic here
        nameInput();
         typeInput(Scanner keyboard, CartoonStar star);
       popularityNumber();


    }

    /**
     *
     * @param name
     */
    public static void nameInput() {

        System.out.println("What is the name of the cartoon character : ");
        Scanner keyboard = new Scanner(System.in);
        CartoonStar star = new CartoonStar();
        String name = keyboard.next();
        star.setName(name);

    }

    public static void typeInput(Scanner keyboard, CartoonStar star){
        System.out.println("What is the cartoon character type: 1 = FOX,2 = CHICKEN,3 = RABBIT,4 = MOUSE,5 = DOG,\n"
                + "6 = CAT,7 = BIRD,8 = FISH,9 = DUCK,10 = RAT");

        switch (keyboard.nextInt())
                {case 1 :
                    star.setType(CartoonType.FOX);
                    break;

                case 2 :
                    star.setType(CartoonType.CHICKEN);
                    break;
                case 3 :
                    star.setType(CartoonType.RABBIT);
                    break;
                case 4 :
                    star.setType(CartoonType.MOUSE);
                    break;
                case 5 : 
                    star.setType(CartoonType.DOG);
                    break;
                case 6 : 
                    star.setType(CartoonType.CAT);
                    break;
                case 7 :
                    star.setType(CartoonType.BIRD);
                    break;
                case 8 :
                    star.setType(CartoonType.FISH);
                    break;
                case 9 :
                    star.setType (CartoonType.DUCK);
                    break;
                case 10 : 
                    star.setType(CartoonType.RAT);
                    break;
        }
    }


        public static void popularityNumber(Scanner keyboard, CartoonStar star){
        System.out.println("What is the cartoon popularity number?");
        int popularity = keyboard.nextInt();
        star.setPopularityIndex(popularity);
        System.out.println(star.getName() + star.getType() + star.getPopularityIndex());
    }
}







CartoonStar class (just in case you want it): 




public class CartoonStar {


  private String name;   
  private CartoonStar.CartoonType type;  
  enum CartoonType {
      FOX(1),CHICKEN(2),RABBIT(3),MOUSE(4),DOG(5),CAT(6),BIRD(7),FISH(8),DUCK(9),RAT(10);

  private final int animalType;
  private static Map <Integer, CartoonType> map = new HashMap <Integer, CartoonType>();
  private CartoonType(int animalType){

  this.animalType=animalType;
  }

  public int getAnimlType(){
  return animalType;}


  }//enum types
  private int popularityIndex;  //1 to 10 10 being the most popular

  public CartoonStar() {
  }//end no argument construtor

  public CartoonStar(String name,CartoonStar.CartoonType type, int popularityIndex) {
    setName(name);
    setType(type);
    setPopularityIndex(popularityIndex);
  }//end full constructor

  //getters and setters
  public void setName(String name) {
    this.name = name;
  }      
  public String getName() {
    return name;
  }
  public void setType(CartoonStar.CartoonType type) {
    this.type = type;
  }
  public CartoonStar.CartoonType getType() {
    return type;
  }
  public void setPopularityIndex(int popularityIndex){
    this.popularityIndex = popularityIndex;
  }
  public int getPopularityIndex(){
    return popularityIndex;
  }  

}

在您的主要方法中,您可以按以下方式调用方法:

typeInput(Scanner keyboard, CartoonStar star);

typeInput方法需要声明的 keyboard ,并宣布 star 您打错了。

最佳选择如下:

public static void main(String[] args) {
        // TODO code application logic here
    nameInput();
    popularityNumber();
}

public static void nameInput() {

    System.out.println("What is the name of the cartoon character : ");
    Scanner keyboard = new Scanner(System.in);
    CartoonStar star = new CartoonStar();
    String name = keyboard.next();
    star.setName(name);

    typeInput(keyboard, star);
}

我在您的nameInput()方法中添加了typeInput()并将其从main()方法中删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM