试图打印存储在另一个java对象中的变量
好吧,我对java还很陌生,我认为这比我所说的更基本。所以我有一个对象播放器,它存储了播放器的核心数据,但是我如何在代码的其他地方调用这些变量呢?至少让它打印玩家的力量分数?最佳做法是创建公开方法,公开对象的内部状态,这些状态应该在其他类中可见,并留下不应该被其他类使用的不可见信息 通常,这些方法称为getter,并使用以下语法:试图打印存储在另一个java对象中的变量,java,object,Java,Object,好吧,我对java还很陌生,我认为这比我所说的更基本。所以我有一个对象播放器,它存储了播放器的核心数据,但是我如何在代码的其他地方调用这些变量呢?至少让它打印玩家的力量分数?最佳做法是创建公开方法,公开对象的内部状态,这些状态应该在其他类中可见,并留下不应该被其他类使用的不可见信息 通常,这些方法称为getter,并使用以下语法: import java.util.Scanner; class player_test { public static void main(String[]
import java.util.Scanner;
class player_test {
public static void main(String[] args) {
Scanner s_in = new Scanner(System.in);
Scanner i_in = new Scanner(System.in);
class player {
String player_name;
String player_class;
String player_race;
int player_STR = 10;
int player_DEX;
int player_CON;
int player_WIS;
int player_INT;
int player_CHA;
}
int tempDex = new player(player_STR);
System.out.println(tempDex);
}
}
然后在第二个类中,您可以非常简单地打印它:
public String getPlayer_name() {
return player_name;
}
最好的做法是创建公开方法,公开对象的内部状态,这些状态应该可以从其他类中看到,而留下不应该被其他类使用的不可见信息 通常,这些方法称为getter,并使用以下语法:
import java.util.Scanner;
class player_test {
public static void main(String[] args) {
Scanner s_in = new Scanner(System.in);
Scanner i_in = new Scanner(System.in);
class player {
String player_name;
String player_class;
String player_race;
int player_STR = 10;
int player_DEX;
int player_CON;
int player_WIS;
int player_INT;
int player_CHA;
}
int tempDex = new player(player_STR);
System.out.println(tempDex);
}
}
然后在第二个类中,您可以非常简单地打印它:
public String getPlayer_name() {
return player_name;
}
由于类player中的所有变量都是非静态的,因此需要创建该类的对象以访问其非静态数据成员
// is a best practice to start class names with uppercase
Player x = new Player();
... // Do something
System.out.println(x.getPlayer_name());
这里您正在创建一个player类的对象。因此您应该保持player类型的tempDex(也可以是超级类)。
其次,您使用的是一个未在类中定义的参数化构造函数
int tempDex=new player(player_STR); //this will generate compilation error
由于类player中的所有变量都是非静态的,因此需要创建该类的对象以访问其非静态数据成员
// is a best practice to start class names with uppercase
Player x = new Player();
... // Do something
System.out.println(x.getPlayer_name());
这里您正在创建一个player类的对象。因此您应该保持player类型的tempDex(也可以是超级类)。
其次,您使用的是一个未在类中定义的参数化构造函数
int tempDex=new player(player_STR); //this will generate compilation error
您可以执行
System.out.println(tempDex.player_STR)
或使用IDE将toString()
方法添加到Player
顺便说一句,您不需要将Player\uuu
添加到所有字段名。您应该尝试对类使用PascalCase
,对变量/属性/函数名使用camelCase
。当然,这是一种风格选择,但这往往是命名事物最常见的方式;您正在将一个player类分配给一个int类型,您可以执行System.out.println(tempDex.player\u STR)
或使用IDE将toString()
方法添加到Player
顺便说一句,您不需要将Player\uuu
添加到所有字段名。您应该尝试对类使用PascalCase
,对变量/属性/函数名使用camelCase
。当然,这是一种风格选择,但这往往是命名事物最常见的方式;您正在将玩家类分配给int类型