我是java的新手,我不知道如何将私有类中的变量调用到另一个。 目前我正在使用NetBeans 8.1,这里是我想从中获取值的类
public class Mars {
public static String name;
private static int fuel;
private static int AI;
private static int tecnology;
public void setName(String nm)
{
name = nm;
}
public void setFuel(int fl)
{
fuel = fl;
}
public void setAI(int ai)
{
AI = ai;
}
public void setTecnology(int tc)
{
tecnology = tc;
}
public String getName()
{
return name;
}
public int getFuel()
{
return fuel;
}
public int getAI()
{
return AI;
}
public int getTecnology()
{
return tecnology;
}
private static class name {
public name(){
name = "unknown";
}
}
private static class fuel{
public fuel() {
fuel = 50;
if ((fuel >100) || (fuel <0))
{System.out.println("\nError!");
System.exit(0);}}}
private static class AI {
public AI() {
AI = 5;
if ((AI >10) || (AI <1))
{System.out.println("\nError!");
System.exit(0);}}}
private static class tecnologiy {
public tecnologiy() {
tecnology = 5;
if ((tecnology >10) || (tecnology <1))
{System.out.println("\nError");
System.exit(0);}}}
}
这是我想要放置值的类:
public class Space_Battle {
public static void main(String[] args) {
Mars Call1 = new Mars();
System.out.println("\nThe alien named " + Mars.name + " joined the battle" );
}
}
自然每一次修正都会非常感激! :-D 附:如果这个问题是荒谬的话,我很抱歉。
答案 0 :(得分:1)
将您的代码更改为此...
public class Space_Battle {
public static void main(String[] args) {
Mars mars = new Mars();
System.out.println("\nThe alien named " + mars.getName() + " joined the battle");
}
当您创建对象的实例时,您应该通过安全访问器访问它,即getter方法,getName()等。
从私有变量中删除静态声明。
答案 1 :(得分:0)
你不能直接将值设置为来自另一个类的私有变量,这就是为什么它们是私有的。
你有来实例化所述类的对象。
示例:
Mars call1= new Mars();
然后您可以为该对象设置值。
call1.setName("whatever");
然后获取对象的值只需使用getter。
call1.getName();
然后打印出来:
System.out.println("\nThe alien named " + call1.getName() + " joined the battle" );
另外,从变量中删除静态。
我还鼓励您阅读“this”关键字。
我建议您阅读本文档: https://docs.oracle.com/javase/tutorial/java/concepts/object.html