为什么将变量“ rank”设置为RankBase.lieutenant,然后在控制台中为什么显示值“ null”呢?

时间:2018-07-29 20:17:40

标签: java variables null

我有一个非常重要的问题。因为如果我将变量设置为适当的内容并希望在控制台中显示它,那么它将显示 null 而不是此值。当我在玩家帐户上设置排名并阻碍游戏开发时,会发生此错误。

代码:

width-nodeWidth/2

等级等级代码:

package com.qblocks.bfof;

import com.qblocks.bfof.entity.EntityPlayer;                
import com.qblocks.bfof.rank.Rank;                       
import com.qblocks.bfof.rank.RankBase;

public class Game {
    public static void main(String[] args) {
        EntityPlayer player = new EntityPlayer(RankBase.lieutenant,16500, 
        "MeoNek", 20000);
        System.out.println("Your Account: Rank: " + player.rank.name + " | 
        B - Pounds: " + player.pounds + " | XP: " + player.xp + " | Name: " 
        + player.name);
    }
}

播放器类的代码:

package com.qblocks.bfof.rank;

public class RankBase {
    public static RankRecruit recruit = new RankBase().new RankRecruit();
    public static RankPrivate privat = new RankBase().new RankPrivate();
    public static RankCadet cadet = new RankBase().new RankCadet();
    public static RankAspirant aspirant = new RankBase().new RankAspirant();
    public static RankEnsign ensign = new RankBase().new RankEnsign();
    public static RankMajorEnsign majorE = new RankBase().new RankMajorEnsign();
    public static RankMajorEnsign1 majorE1 = new RankBase().new RankMajorEnsign1();
    public static RankMajorEnsign2 majorE2 = new RankBase().new RankMajorEnsign2();
    public static RankMajorEnsign3 majorE3 = new RankBase().new RankMajorEnsign3();
    public static RankGefreiter gefreiter = new RankBase().new RankGefreiter();
    public static RankCorporal corporal = new RankBase().new RankCorporal();
    public static RankSergeant sergeant = new RankBase().new RankSergeant();
    public static RankLieutenant lieutenant = new RankBase().new RankLieutenant();
    public static RankCaptain captain = new RankBase().new RankCaptain();
    public static RankMajor major = new RankBase().new RankMajor();
    public static RankColonel colonel = new RankBase().new RankColonel();
    public static RankBrigadier brigadier = new RankBase().new 
    RankBrigadier();

    public String name;
    public int xp;
    public int xpNextLvl;
    public int poundsReward;

    public RankBase() {
    }

    public void unlocks() {
    }

    public String getName() {
        return name;
    }

    public class RankRecruit extends RankBase {
        public String name = "Recruit";
        public int xp = 0;
        public int xpNextLvl = 100;
        public int poundsReward = 0;

        public void unlocks() {
        }
    }

    public class RankPrivate extends RankBase {
        //Private and rest have the same variables as in the Recruit class 
        //but with different values.
        //
        //I removed some of the code because there were too many lines.
    }

    public class RankCadet extends RankBase {
    }

    public class RankAspirant extends RankBase {
    }

    public class RankEnsign extends RankBase {
    }

    public class RankMajorEnsign extends RankBase {
    }

    public class RankMajorEnsign1 extends RankBase {
    }

    public class RankMajorEnsign2 extends RankBase {
    }

    public class RankMajorEnsign3 extends RankBase {
    }

    public class RankGefreiter extends RankBase {
    }

    public class RankCorporal extends RankBase {
    }

    public class RankSergeant extends RankBase {
    }

    public class RankLieutenant extends RankBase {
    }

    public class RankCaptain extends RankBase {
    }

    public class RankMajor extends RankBase {
    }

    public class RankColonel extends RankBase {
    }

    public class RankBrigadier extends RankBase {
    }
}

0 个答案:

没有答案