java – 从另一个类检索int时获取null
发布时间:2020-12-15 04:14:28 所属栏目:Java 来源:网络整理
导读:基本上我做了这个程序,计算机生成随机卡.我创建了一个名为’rndnumber’的类,这个类生成随机数.然后,我创建了另一个名为’rndsuits’的类,这会生成随机套装. 问题是当我去我的主类,并执行代码时,我得到的是null而不是数字和套装.谁知道为什么?我的输出基本
基本上我做了这个程序,计算机生成随机卡.我创建了一个名为’rndnumber’的类,这个类生成随机数.然后,我创建了另一个名为’rndsuits’的类,这会生成随机套装.
问题是当我去我的主类,并执行代码时,我得到的是null而不是数字和套装.谁知道为什么?我的输出基本上是: 这是你的随机卡:null null. public class maincard { public static void main(String[] args){ System.out.println("Here is your random card"); rndnumber h = new rndnumber(); rndsuit a = new rndsuit(); System.out.println(h.getString() + " of " + a.getStringz()); } } public class rndnumber { private int rndnumber = (int) (Math.random()*13+1); private String number; public String getString(){ return number; } public void rnd(){ switch (rndnumber){ case 1: number = "Ace"; break; case 2: number = "2"; break; case 3: number = "3"; break; case 4: number = "4"; break; case 5: number = "5"; break; case 6: number = "6"; break; case 7: number = "7"; break; case 8: number = "8"; break; case 9: number = "9"; break; case 10: number = "10"; break; case 11: number = "Jacks"; break; case 12: number = "Queens"; break; case 13: number = "Kings"; break; } } } public class rndsuit { private int y = (int) (Math.random()*3+1); private String rndsuit; public String getStringz(){ return rndsuit; } public void suit(){ switch(y){ case 1: rndsuit = "Spades"; break; case 2: rndsuit = "Cloves"; break; case 3: rndsuit = "Hearts"; break; case 4: rndsuit = "Diamonds"; break; } } } 解决方法
您需要在获取值之前调用方法.
h.rnd(); a.suit(); System.out.println(h.getString() + " of " + a.getStringz()); 这将解决null问题. 但是还有另外一个问题在休息室等你.除非您反复创建新对象并使用该对象访问值,否则上述修复将始终返回相同的值. 你需要在rnd()和suit()这样的方法中移动随机生成器部分,以便始终返回新的随机值. public void suit() { y = (int) (Math.random() * 3 + 1); ... } public void rnd() { rndnumber = (int) (Math.random() * 13 + 1); ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |