有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我的公共int没有使用正确的参数,我的调用是否错误?

我是java netbeans新手,因此我非常感谢您的帮助。 我的问题是,我的类中的公共int不能与我在主程序中给出的参数一起工作。 (就像我的“法力”在“公共int fagy_csapas”中不使用“25”,而是使用“0”) 我在任何地方都找不到答案。 我打错电话了吗

主要节目:

package tesztelő;

/**
 *
 * @author Bence
 */
public class Tesztelő {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here       

        Teszt x=new Teszt();

            x.maxhp=30;
            x.hp=30;
            x.maxmana=25;
            x.mana=25;
            x.str=3;
            x.vit=3;
            x.dex=4;
            x.luc=1;
            x.wis=3;
            x.intel=4;

            x.atk_slash_min=1;
            x.atk_slash_max=8;
            x.atk_pierce_min=1;
            x.atk_pierce_max=6;
            x.atk_blunt_min=1;
            x.atk_blunt_max=4;


    Teszt TesztObject = new Teszt();
    TesztObject.fagy_csapas();
        System.out.println(x.mana);
    }

}

还有我的第二节课:

package tesztelő;

/**
 *
 * @author Bence
 */
 public class Teszt {



       //ALAP STATISZTIKÁK

    int maxhp;
    int hp;
    int maxmana;
    int mana;

    int str; //sebzés
    int vit; //fizikai védelem
    int dex; //kitérés
    int luc; //kritikál
    int wis; //mágikus védelem
    int intel; //mágikus támadás

        //PÁNCÉL

    int def_slash;
    int def_pierce;
    int def_blunt;

    int def_fire;
    int def_water;
    int def_wind;
    int def_earth;
    int def_thunder;
    int def_light;
    int def_dark;

        //FEGYVER

    int hitmin=1, hitmax=100;
    int hitrate=100;
    int hitrange = hitmax - hitmin + 1;
    boolean crit=false;

    int atk_slash_min=1;
    int atk_slash_max=10;
    int slash_range = atk_slash_max - atk_slash_min + 1;
    int atk_pierce_min;
    int atk_pierce_max;
    int atk_blunt_min;
    int atk_blunt_max;

    int atk_slash_bonus;
    int atk_pierce_bonus;
    int atk_blunt_bonus;



            //ENEMY STATISZTIKÁK

                int en_hp=20;
                int en_mana;

                int en_str; //sebzés
                int en_vit; //fizikai védelem
                int en_dex=0; //kitérés
                int en_luc; //kritikál
                int en_wis; //mágikus védelem
                int en_intel; //mágikus támadás

                int en_def_slash=3;
                int en_def_pierce;
                int en_def_blunt;

                int en_def_fire;
                int en_def_water=0;
                int en_def_wind;
                int en_def_earth;
                int en_def_thunder;
                int en_def_light;
                int en_def_dark;






           //VARÁZSPENGE KÉPESSÉGEK

            public int fagy_csapas()
            { 
                int damage;
                int damage1;
                    //TALÁLAT
                int hitrand = (int)(Math.random() * hitrange) + hitmin;
                 if (hitrand <= hitrate - (en_dex*2))
                    {
                        System.out.println("Talált! "+hitrand);
                        hitrand = (int)(Math.random() * hitrange) + hitmin;
                            if(hitrand <= luc)
                            {
                                crit=true;
                            }
                            //SEBZÉS
                        damage= (int)(Math.random() * slash_range) + atk_slash_min;
                        int  en_hp1=en_hp;
                        if ((damage+atk_slash_bonus)<en_def_slash)
                            {
                                damage=en_def_slash;
                            }
                        en_hp = en_hp - ((damage+atk_slash_bonus)-en_def_slash);
                        damage1=damage;
                        System.out.println("Vágó sebzés: "+damage+" - védelem: "+en_def_slash+"Enemy hp: "+en_hp1+" ----> "+en_hp );
                                //KRITIKUS SEBZÉS
                            if(crit=true)
                            {
                                System.out.println("Kritikális támadás! ");
                                damage= (int)(Math.random() * slash_range) + atk_slash_min;
                                  en_hp1=en_hp;
                               if ((damage+atk_slash_bonus)<en_def_slash)
                            {
                                damage=en_def_slash;
                            }
                                en_hp = en_hp - ((damage+atk_slash_bonus)-en_def_slash);
                                damage1=damage1+damage;
                                System.out.println("Sebzés: "+damage+" - védelem: "+en_def_slash+"Enemy hp: "+en_hp1+" ----> "+en_hp );
                                crit=false;
                            }

                                //MÁGIKUS SEBZÉS
                                 en_hp1=en_hp;
                                 if ((damage1)<en_def_water)
                            {
                                damage=en_def_water;
                            }
                            en_hp = en_hp - ((damage1)-en_def_water);
                            System.out.println("Sebzés: "+damage1+" - védelem: "+en_def_water+"Enemy hp: "+en_hp1+" ----> "+en_hp );

                    }
                 else
                     System.out.println("Nem talált!"); 

                if(mana>=5)
                    {
                        System.out.print("Mana: "+mana+" -----> ");
                        mana=mana-5;
                        System.out.println(mana);
                    }
                else
                    {
                        System.out.println("Nem volt elég manád, hogy elhasználd, így a pengéből áradó fagyos aura a csapás által rád is robban.");
                        System.out.println("Mana: "+mana);
                        System.out.print("Hp: "+hp+" ------> ");
                        hp=hp-10;
                        System.out.println(hp);
                    }

            return mana;
            }
 }

共 (1) 个答案

  1. # 1 楼答案

    您正在创建一个X对象(Teszt x=new Teszt();),并为属性(x.mana=25;)赋值

    接下来创建另一个对象TesztObjectTeszt TesztObject = new Teszt();),并使用该对象调用方法(TesztObject.fagy_csapas();)。但是在TesztObject中,mana的值仍然是“0”,这是int的默认值

    因此,请尝试以下代码:

    package tesztelő;
    
    /**
     *
     * @author Bence
     */
    public class Tesztelő {
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here       
    
            Teszt x=new Teszt();
    
                x.maxhp=30;
                x.hp=30;
                x.maxmana=25;
                x.mana=25;
                x.str=3;
                x.vit=3;
                x.dex=4;
                x.luc=1;
                x.wis=3;
                x.intel=4;
    
                x.atk_slash_min=1;
                x.atk_slash_max=8;
                x.atk_pierce_min=1;
                x.atk_pierce_max=6;
                x.atk_blunt_min=1;
                x.atk_blunt_max=4;
    
    
        x.fagy_csapas();
        System.out.println(x.mana);
        }
    
    }