在Java中接受方法参数
我的问题让我困惑,因为我以前做过这个,它在以前的程序中工作过,但这个特定的程序不会工作。我只需要使用typeInput和popularityNumber方法以及我传递给它们的两个变量,但是我不能在我的main方法中调用它们而不出错。预期出现“)”或“;”,在我看来,在需要的地方似乎有括号和分号。我相信这是一个快速修复,并将感谢学习如何修复它。谢谢大家!在Java中接受方法参数,java,methods,Java,Methods,我的问题让我困惑,因为我以前做过这个,它在以前的程序中工作过,但这个特定的程序不会工作。我只需要使用typeInput和popularityNumber方法以及我传递给它们的两个变量,但是我不能在我的main方法中调用它们而不出错。预期出现“)”或“;”,在我看来,在需要的地方似乎有括号和分号。我相信这是一个快速修复,并将感谢学习如何修复它。谢谢大家! public static void main(String[] args) { // TODO code applicati
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;
}
}
publicstaticvoidmain(字符串[]args){
//此处的TODO代码应用程序逻辑
nameInput();
类型输入(扫描仪键盘、CartonStar星形);
popularityNumber();
}
/**
*
*@param name
*/
公共静态void nameInput(){
System.out.println(“卡通人物的名字是什么:”);
扫描仪键盘=新扫描仪(System.in);
CartonStar星形=新的CartonStar();
字符串名称=keyboard.next();
star.setName(name);
}
公共静态无效类型输入(扫描仪键盘、CartonStar星形){
System.out.println(“卡通人物类型是什么:1=狐狸,2=鸡,3=兔子,4=老鼠,5=狗,\n”
+“6=猫,7=鸟,8=鱼,9=鸭,10=鼠”);
开关(键盘.nextInt())
{案例1:
star.setType(cartontype.FOX);
打破
案例2:
星型(cartotype.CHICKEN);
打破
案例3:
星型(cartotype.RABBIT);
打破
案例4:
star.setType(cartotype.MOUSE);
打破
案例5:
星型(cartotype.DOG);
打破
案例6:
star.setType(cartootype.CAT);
打破
案例7:
星型(cartotype.BIRD);
打破
案例8:
星型(cartontype.FISH);
打破
案例9:
star.setType(cartontype.DUCK);
打破
案例10:
星型(cartotype.RAT);
打破
}
}
公共静态void popularityNumber(扫描仪键盘、卡通星){
System.out.println(“卡通人气数字是多少?”);
int popularity=keyboard.nextInt();
star.setPopularityIndex(流行度);
System.out.println(star.getName()+star.getType()+star.getPopularityIndex());
}
}
CartonStar类(以防您需要):
公共级卡通明星{
私有字符串名称;
私有cartonstar.cartontype类型;
枚举卡通类型{
狐狸(1)、鸡(2)、兔(3)、鼠(4)、狗(5)、猫(6)、鸟(7)、鱼(8)、鸭(9)、鼠(10);
私有最终int动物类型;
私有静态映射Map=newhashmap();
专用卡通类型(int animalType){
this.animalType=animalType;
}
public int getAnimlType(){
返回animalType;}
}//枚举类型
private int popularityIndex;//1到10是最流行的
公共卡通星(){
}//结束无参数构造函数
公共CartonStar(字符串名称,cartonStar.cartonType类型,int popularityIndex){
集合名(名称);
setType(类型);
setPopularityIndex(popularityIndex);
}//结束完整构造函数
//接球手和接球手
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getName(){
返回名称;
}
public void setType(cartonstar.cartontype类型){
this.type=type;
}
public cartonStar.cartonType getType()的{
返回类型;
}
public void setPopularityIndex(int popularityIndex){
this.popularityIndex=popularityIndex;
}
public int getPopularityIndex(){
返回人口指数;
}
}
在main方法中,您可以按如下方式调用方法:
typeInput(Scanner keyboard, CartoonStar 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);
}
typeInput
方法需要声明的键盘
和声明的星型
。你叫错了
您的最佳选择如下:
typeInput(Scanner keyboard, CartoonStar 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()
方法中删除。在您的main方法中,您按如下方式调用您的方法:
typeInput(Scanner keyboard, CartoonStar 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);
}
typeInput
方法需要声明的键盘
和声明的星型
。你叫错了
您的最佳选择如下:
typeInput(Scanner keyboard, CartoonStar 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()
方法中删除。在您的main方法中,您按如下方式调用您的方法:
typeInput(Scanner keyboard, CartoonStar 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);
}
typeInput
方法需要声明的键盘
和声明的星型
。你叫错了
您的最佳选择如下:
typeInput(Scanner keyboard, CartoonStar 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()
方法中删除。在您的main方法中,您按如下方式调用您的方法:
typeInput(Scanner keyboard, CartoonStar 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);
}
typeInput
方法需要声明的键盘
和声明的星型
。你叫错了
您的最佳选择如下:
typeInput(Scanner keyboard, CartoonStar 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()
方法中删除。这就是我的想法,我尝试了几次,但仍然得到相同的错误。啊,我明白了。其中一个流程是否比另一个流程效率更高?或者说,从main调用它是不可能的吗?我的意思是,调用一个需要方法变量的方法时,需要传递一个声明的
值或一个null