【问题标题】:Sending and receiving units from other methods从其他方法发送和接收单元
【发布时间】:2018-07-07 00:49:26
【问题描述】:

单个方法是否可以从其他方法接收超过 2 个整数以便执行功能?来自方法用户,因此方法游戏拥有所有信息,因此我可以执行用户与敌人交互的算术函数

    public static void game(String[] args, int elife) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int life=80;
    int damage = 8;
    int A = (elife - damage);
    String enemy ="";
    int Enemy;
    Random generator = new Random();
    Enemy = generator.nextInt(3)+1; 
        if (Enemy == 1) 
        {enemy = "Grunt";
            int hp=45;
        int shp= Integer.parseInt(br.readLine());}
        else if (Enemy == 2) 
        {enemy = "Slave";
            int hp =40; }
        else if (Enemy == 3) 
        {enemy= "Witch";
        int hp=50;}
    System.out.println("Welcome to the game!");
    user();
    System.out.println("Get Ready to face you first opponent ");
    System.out.println("You are Faced against " + enemy);
    System.out.println("Would you like to: \n [A]Attack         [B]Defend");
    String choice = br.readLine();
    if (choice.equals("A")){
        System.out.println(""+A+"");
        System.out.println("You chose to attack "+enemy+" for "+"damage!");}
    else if(choice.equals("B")){
        System.out.println("You chose to defend and recieved"+"damage.");
}}
public static void user () throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int life= 80;
    int damage = 8;
    System.out.print("Please enter your name: ");
    String name = br.readLine();
    System.out.println("WELCOME "+name); 
}


public static void Witch() throws IOException{   
    int elife = 50;
    int damage;    
    int edamage = 0;
    Random generator = new Random();
    damage = generator.nextInt(3)+1; 
        if (damage == 1) 
    edamage = 5; 
        else if (damage == 2) 
    edamage = 10; 
        else if (damage == 3) 
    edamage = 12; 
    System.out.println("Enemy life : "+elife);
    System.out.println("Enemy damage : " +edamage);
}
}
public static void Grunt(){   
    int elife = 45;
    int damage;    
    int edamage = 0;
    Random generator = new Random();
    damage = generator.nextInt(3)+1; 
        if (damage == 1) 
    edamage = 3; 
        else if (damage == 2) 
    edamage = 8; 
        else if (damage == 3) 
    edamage = 15; 
    System.out.println("Enemy life : "+elife);
    System.out.println("Enemy damage : " +edamage);
}   
public static void Slave(){  
    int elife = 40;
    int damage;    
    int edamage = 0;
    Random generator = new Random();
    damage = generator.nextInt(3)+1; 
        if (damage == 1) 
    edamage = 7; 
        else if (damage == 2) 
    edamage = 8; 
        else if (damage == 3) 
    edamage = 5; 
    System.out.println("Enemy life : "+elife);
    System.out.println("Enemy damage : " +edamage);
}}

【问题讨论】:

  • 您说的是超载吗?做一个同名的方法,只是参数不同?
  • 如果重载只是将一堆信息放入一个方法中,那么参数上也可以。有可能吗?
  • hmm.. 好的搜索词是金!

标签: java function methods netbeans


【解决方案1】:

方法重载(也称为静态多态)是一种可以在一个类中拥有两个(或多个)同名方法(函数)的方法。是的,就这么简单。

public class Shape{
//It could be a circle or rectangle or square
private String type;
//To calculate area of rectangle
public Double area(Long length, Long breadth){
return (Double) length * breadth;
}
//To calculate area of a circle
public Double area(Long radius){
return (Double) 3.14 * r * r;
}
}

这样你就可以根据它所具有的形状类型调用相同的区域方法

【讨论】:

  • 我认为您发送给我的代码与该问题无关,因为我询问的是从方法到方法发送和接收多个整数。我不会调用方法
  • Tom 有一个很好的重载方法(多态)的例子。方法被称为很多东西,即函数、过程等。你的问题:“一个方法可以从其他方法接收超过 2 个整数”,是的,你可以在另一个方法中调用另一个方法并返回你想要的等等。
  • @Jonathan 只是想一想,检查您的代码,您可以创建全局变量,这样您就可以获取/设置生命/伤害并在您的游戏方法中检查它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-10
  • 2019-03-12
  • 2016-01-22
  • 2014-04-23
相关资源
最近更新 更多