You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java NetBeans中类方法调用参数不生效问题求助

问题分析与解决方案

嗨,我一眼就找到问题所在啦!你遇到的核心问题是创建了两个完全独立的Teszt类实例,导致你精心配置的属性根本没被用到。

问题根源

你在主程序里做了两件关键的事:

  1. 创建了Teszt x实例,并且给它的mana等所有属性都赋值了正确的值(包括mana=25)
  2. 又新建了一个Teszt TesztObject = new Teszt()实例,这个全新的实例所有属性都是类的默认初始值(比如mana默认是0)

然后你调用的是TesztObject.fagy_csapas(),这自然会使用这个新实例的默认mana值,而不是你之前配置好的x的mana=25。

修复后的主程序代码

只需要删除多余的TesztObject实例,直接调用你已经配置好的x对象的方法就行:

package tesztelő;

public class Tesztelő {
    public static void main(String[] args) {
        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对象的方法
        x.fagy_csapas();
        System.out.println(x.mana);
    }
}

额外的优化建议

为了避免以后再犯类似的错误,给你两个实用小建议:

  1. 使用构造函数初始化对象:可以在Teszt类里写一个带参数的构造函数,创建对象时就能直接初始化所有属性,不用逐个赋值,也不容易搞混实例。
    示例构造函数:
    public Teszt(int maxhp, int hp, int maxmana, int mana, int str, int vit, int dex, int luc, int wis, int intel, int atk_slash_min, int atk_slash_max, int atk_pierce_min, int atk_pierce_max, int atk_blunt_min, int atk_blunt_max) {
        this.maxhp = maxhp;
        this.hp = hp;
        this.maxmana = maxmana;
        this.mana = mana;
        this.str = str;
        this.vit = vit;
        this.dex = dex;
        this.luc = luc;
        this.wis = wis;
        this.intel = intel;
        this.atk_slash_min = atk_slash_min;
        this.atk_slash_max = atk_slash_max;
        this.atk_pierce_min = atk_pierce_min;
        this.atk_pierce_max = atk_pierce_max;
        this.atk_blunt_min = atk_blunt_min;
        this.atk_blunt_max = atk_blunt_max;
    }
    
    然后创建对象时可以简化为:
    Teszt x = new Teszt(30, 30, 25, 25, 3, 3, 4, 1, 3, 4, 1, 8, 1, 6, 1, 4);
    
  2. 遵循封装原则:把Teszt类里的字段设置为private,然后提供对应的getter和setter方法,这样能更好地控制属性的访问和修改,让代码更健壮、易维护。

内容的提问来源于stack exchange,提问作者Tatsuya Suou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 22:42:40